1

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を置き換えるための作品を見つけました。しかし、これは私にはうまくいきません。


4

2 に答える 2

4

メソッドではなく、 setTextContent(String textContent)メソッドが必要ですsetAttribute

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

oldValueは要素のであり、属性ではありませんTextContent。属性とは何かを見つけるためにここ<date>をチェックしてください。

于 2013-03-05T02:42:10.097 に答える
2

属性を設定すると、ノードルートの属性が変更されるため、<root attrName = "attrValue">のようになります。

答えを見つけるのに役立つ質問があります。

java、dom、xml解析で新しいノード値を設定する際の問題
jdomを使用して値をxmlに動的に設定する

于 2013-03-05T02:39:34.100 に答える