Как изменить значение узла XML? - PullRequest
4 голосов
/ 04 июля 2011

Я новый разработчик в Java-приложении.Я хотел бы изменить значение узла файла XML.Я использовал XML-файл для изменения следующим образом

  <staff id="2">
       <firstname>yong</firstname>
       <lastname>mook kim</lastname>
       <nickname>mkyong</nickname>
       <salary>2000000</salary>
       <age>28</age>
   </staff>

в приведенном выше XML-файле. Я хотел бы изменить значение заработной платы на 345375. Для этой модификации я написал следующий код

 try{
     DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
     DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
     Document doc = docBuilder.parse(new File("/sdcard/myxml.xml"));

    //Get the staff element by tag name directly
     Node nodes = doc.getElementsByTagName("staff").item(0);
    //loop the staff child node
     NodeList list = nodes.getChildNodes();

     for (int i =0; i<list.getLength();i++){
         Node node = list.item(i);

         //get the salary element, and update the value
         if("salary".equals(node.getNodeName())){
             node.setNodeValue("345375");        
         }
     }
}
    catch (Exception e) {
        e.printStackTrace();
    }

если я использую этот способ, это значение не изменяет зарплату.

Как я могу изменить значение узла XML?

Ответы [ 2 ]

0 голосов
/ 30 июля 2011
node.Text = "Enter your value here"; //This will work 
0 голосов
/ 04 июля 2011

Сначала вы должны понять, что node.setValue() изменяет представление, которое хранится в памяти . Зная это, вам просто нужно выяснить, как записать этот вывод на диск. См. this , например.

...