comment faire pour modifier la balise xml valeur spécifique en java?

je suis nouveau sur le travail sur le langage xml.j'ai utilisé un fichier xml comme suit:

<?xml version="1.0" encoding="UTF-8" ?> 
      - <root>
      - <key>
           <Question>Is the color of the car</Question> 
           <Ans>black?</Ans> 
       </key>
     - <key>
           <Question>Is the color of the car</Question> 
           <Ans>black?</Ans> 
       </key>
     - <key>
           <Question>Is the news paper</Question> 
           <Ans>wallstreet?</Ans> 
      </key>
    - <key>
          <Question>fragrance odor</Question> 
          <Ans>Lavendor?</Ans> 
     </key>
   - <key>
          <Question>Is the baggage collector available</Question> 
         <Ans /> 
     </key>
  </root>

à partir de ci-dessus xml je voudrais changer seulement

             <Ans>wallstreet?</Ans> as <Ans>WonderWorld</Ans>.

comment puis-je changer wallstreet? comme WonderWorld? grâce à mon application java.

j'ai écrit méthode java comme indiqué ci-dessous:

  public void modifyNodeval(){
 try{
        DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
        Document doc = docBuilder.parse(new File(path));
        Node nodes1 = doc.getElementsByTagName("*");
        for(int j=0;j<nodes1.getLength();j++)
        {
            //Get the staff element by tag name directly
            Node nodes = doc.getElementsByTagName("key").item(j);
            //loop the staff child node
            NodeList list = nodes.getChildNodes();

            for (int i = 0; i != list.getLength(); ++i)
            {
                Node child = list.item(i);

               if (child.getNodeName().equals("Ans")) {

                   child.getFirstChild().setNodeValue("WonderWorld") ;
                   System.out.println("tag val modified success fuly");
               }

           }
       }
       TransformerFactory transformerFactory = TransformerFactory.newInstance();
       Transformer transformer = transformerFactory.newTransformer();
       DOMSource source = new DOMSource(doc);
       StreamResult result = new StreamResult(path);
       transformer.transform(source, result);
   }
   catch (Exception e) 
   {
       e.printStackTrace();
   }
}

en utilisant le code ci-dessus, je suis en mesure de changer le texte de l'étiquette en tant que merveille du monde, mais mon intention est que je veux changer uniquement wallstreet? comme WonderWorld.

tout le corps s'il vous plaît aider moi......

  • Qu'avez-vous essayé jusqu'à présent? Avez-vous un peu de code à nous montrer? Aussi, si accepte plus de réponses, les gens ici seront des plus utiles.
  • vérifiez auprès de mon code java
InformationsquelleAutor prasad.gai | 2011-10-04