【问题标题】:How to create multi level xml file如何创建多级xml文件
【发布时间】:2015-09-21 19:46:33
【问题描述】:

我在查找有关在 xml 文件中创建多级标签的信息时遇到了麻烦 例如我想要下一个结构

<UserCards>
  <UserCard userCardId="171">
   <userName>somename</userName>
   <userSurname>somesurname</userSurname>
   <userAge>24</userAge>
   <userAdress>someadress</userAdress>
   <userPhone>223334455</userPhone>
     <CurrentBooks>
       <booName>someBookName</bookName>
     </CurrentBooks>
  </UserCard>
</UserCards>

我可以创建简单的一级 xml,但如何添加新的?

 DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
                DocumentBuilder docBulder = docFactory.newDocumentBuilder();

                //root mainElement
                Document doc = docBulder.newDocument();
                Element rootElement = doc.createElement("UserCards");
                doc.appendChild(rootElement);

                //root Book
                Element UserCard = doc.createElement("UserCard");
                rootElement.appendChild(UserCard);
                ...  
                ...
                //write in a XMLFile
                TransformerFactory transformerFactory = TransformerFactory.newInstance();
                Transformer transformer = transformerFactory.newTransformer();
                DOMSource source = new DOMSource(doc);
                StreamResult result = new StreamResult(new File("Test/UserCards.xml"));

【问题讨论】:

    标签: java xml file document


    【解决方案1】:

    在我看来,你自己回答了这个问题...... 您可以将元素附加到任何元素,而不仅仅是根。 您可以通过调用 doc.createElement("name") 创建所有元素 并附加到您选择的父元素:

    Elmenet userName = doc.createElement("userName");
    Text userNameText = doc.createTextNode("somename");
    userName.appendChild(userNameText);
    UserCard.appendChild(userName);
    

    【讨论】:

    • 你是对的......我试图这样做但附加到错误的父级。谢谢!
    【解决方案2】:

    试试这个

                Element rootElement = doc.createElement("UserCards");
                doc.appendChild(rootElement);
    
                //root Book
                Element UserCard = doc.createElement("UserCard");
                UserCard.setAttribute("userCardId" , "171");
                Element userSurname = doc.createElement("userSurname");
                UserCard.appendChild(userSurname);
    
                Element userAge = doc.createElement("userAge");
                UserCard.appendChild(userAge);
                Element userAdress = doc.createElement("userAdress");
                UserCard.appendChild(userAdress);
                Element userPhone = doc.createElement("userPhone");
                UserCard.appendChild(userPhone);
                Element CurrentBooks = doc.createElement("CurrentBooks");
                Element booKName = doc.createElement("booKName");
                CurrentBooks.appendChild(booKName);
                UserCard.appendChild(CurrentBooks);
                rootElement.appendChild(UserCard);
    

    【讨论】:

      猜你喜欢
      • 2021-12-04
      • 1970-01-01
      • 2018-07-29
      • 1970-01-01
      • 1970-01-01
      • 2011-11-09
      • 1970-01-01
      • 1970-01-01
      • 2018-08-25
      相关资源
      最近更新 更多