-->

如何更换新价值XML标记之间的旧值(How to replace old value between

2019-10-17 18:31发布

我不得不更换oldValue与日期标签newValue在下面的XML。 我使用setAttribute函数来做到这一点,但它似乎并没有工作。 请不要让我知道,如果我不得不使用不同的功能标签之间替换文本。

将myfile.xml

<?xml version="1.0" encoding="UTF-8" ?>  
<root>  
        <date>oldValue</date>  
</root>

replace.java

Document doc = builder.parse(new File("myFile.xml"));  
Element root = doc.getDocumentElement();  
System.out.println("Before");  
System.out.println("Using getElementByTagName date: " + root.getElementsByTagName("date").item(0).getTextContent());  
System.out.println("Using getAttribute        date: " + root.getAttribute("date"));
root.setAttribute("date", "newValue");  
System.out.println("After");  
System.out.println("Using getElementByTagName date: " + root.getElementsByTagName("date").item(0).getTextContent());  
System.out.println("Using getAttribute        date: " + root.getAttribute("date"));

输出:

**Before**  
 Using getElementByTagName date: oldValue  
 Using getAttribute        date:  
 **After**  
 Using getElementByTagName date: oldValue  
 Using getAttribute        date: test  

随着大量的读/实验,我发现setAttribute()适用于更换像这样的XML。 但是,这并不为我工作。


Answer 1:

你需要setTextContent(字符串的textContent)方法,而不是setAttribute方法。

root.getElementsByTagName("date").item(0).setTextContent("newValue");

oldValueTextContent<date>元素,而不是属性。 请在这里找到什么属性。



Answer 2:

如果设置属性更改节点的根属性,所以它会像<root attrName = "attrValue" >

有很多问题,它可以帮助你找到答案。

问题设置在Java中,DOM,XML解析一个新的节点值
动态设定值为xml使用JDOM



文章来源: How to replace old value between XML tags with new value