【发布时间】:2015-09-22 11:35:10
【问题描述】:
太棒了! 我很感兴趣如何在 xml 中解析和插入新节点。例如我们有
<UserCards>
<UserCard userCardId="ADC">
<userName>nameONE</userName>
<userSurname>surnameONE</userSurname>
<userAge>25</userAge>
<userAdress>adressONE</userAdress>
<userPhone>297718535</userPhone>
</UserCard>
<UserCard userCardId="AC6">
<userName>nameTWO</userName>
<userSurname>surnameTWO</userSurname>
<userAge>17</userAge>
<userAdress>adressTWO</userAdress>
<userPhone>557778899</userPhone>
</UserCard>
</UserCards>
我们需要解析它并找到具有 'userPhone' == 557778899 的用户并插入这张卡 newNode 并获取
</UserCard>
<UserCard userCardId="AC6">
<userName>nameTWO</userName>
<userSurname>surnameTWO</userSurname>
<userAge>17</userAge>
<userAdress>adressTWO</userAdress>
<userPhone>557778899</userPhone>
<newNode>value</newNode>
</UserCard>
我想这样做,但一无所获
File fXmlFile = new File("Test/UserCards.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
Element root = doc.getDocumentElement();
NodeList nList = doc.getElementsByTagName("UserCard");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node node = nList.item(temp);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) node;
//here im trying to find userPhone == 557778899
if (userPhone.equals(eElement.getElementsByTagName("userPhone").item(0).getTextContent())) {
//this part does not work it was one of my try
NodeList nl = doc.getElementsByTagName("UserCards");
Element newNode= doc.createElement("newNode");
newNode.appendChild(doc.createTextNode("hello"));
eElement.appendChild(newNode);
【问题讨论】:
-
您的问题解决了吗?你还有什么需要的吗?