【发布时间】:2013-02-19 07:46:20
【问题描述】:
我必须将日期标签中的 oldValue 替换为以下 XML 中的 newValue。我正在使用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。但是,这对我不起作用。
【问题讨论】:
-
打开和关闭 XML 标记之间的文本不是属性。就是内容。
-
@Code-Guru 你是对的。我对内容的属性感到困惑。
标签: java xml setattribute