2014-09-27 70 views
1
獲得同一級別的所有XML元素名稱相同

我的XML文件如下如何編寫和使用JDOM

<lexicon> 
    <lexiconElement> 
    <word>xxxx</word> 
    <tag>NN 
     <frequancy>3</frequancy> 
    </tag> 
    <tag>VB 
     <frequancy>2</frequancy> 
    </tag> 
    </lexiconElement> 
</lexicon> 

我需要知道如何對許多元素同級別追加在同一個XML文件何時使用JDOM進行更新以及如何使用JDOM讀取具有相同級別的相同名稱的元素?

+0

你可以用輸入和輸出xml來更新你的問題。假設給定的xml是你的輸入。你的更新的xml應該如何。 – Suvasis 2014-09-27 17:03:30

+0

更新可能發生在幾個方面。 1.將新的元素添加到xml。 2.更新之間的文字。 3.更新 Chirath 2014-09-27 17:35:22

+0

之間的文字您能否提供樣品。您期望得到您的給定xml – Suvasis 2014-09-27 17:36:29

回答

1

我希望這是你在找什麼。

try { 

      SAXBuilder builder = new SAXBuilder(); 
      File xmlFile = new File("D:\\your_file.xml"); 

      Document doc = (Document) builder.build(xmlFile); 
      Element rootNode = doc.getRootElement(); 

      Element lexiconElement = rootNode.getChild("lexiconElement"); 

      // 1. add new <tag> elements to xml 
      Element newTag = new Element("your_new_tag").setText("your_new_tag_value"); 
      lexiconElement.addContent(newTag); 

      // 2. Update the text between <frequancy> in perticular tag 
      //lexiconElement.getChild("tag").getChild("frequancy").setText("9"); 

      // 2. Update the text between <frequancy> in all tag 
      List<Element> list = lexiconElement.getChildren("tag"); 
      for(Element elm : list){ 
       elm.getChild("frequancy").setText("324"); 
      } 

      // 3. Update the text between <word> 
      lexiconElement.getChild("word").setText("yyyy"); 

      XMLOutputter xmlOutput = new XMLOutputter(); 

      xmlOutput.output(doc, new FileWriter("D:\\your_file.xml")); 

      System.out.println("*********Done************"); 
     } catch (IOException io) { 
      io.printStackTrace(); 
     } catch (JDOMException e) { 
      e.printStackTrace(); 
     } 
+0

之間的文本謝謝。解決了我的問題。 – Chirath 2014-09-29 17:38:23