我有一个books.xml
文件,其中包含一些像这样的数据
<BookDetails>
<Book>
<name>J2ME</name>
<author>abc</author>
<price>123</price>
</Book>
<Book>
<name>java</name>
<author>xyz</author>
<price>1234</price>
</Book>
</BookDetails>
我需要更新名为java的书的价格。我需要使用新内容更新此xml文件。
怎么做?
答案 0 :(得分:1)
我建议使用JSoup一个你可能可以用于java-me环境的java库。在类路径中拥有库后,可以使用以下代码将xml转换为Dom树:
import org.jsoup.*
import org.jsoup.nodes.*
然后使用JSoup和Document类来解析xml:
String xml = "<BookDetails><Book><name>J2ME</name><author>abc</author><price>123</price</Book>" +
"<Book><name>java</name><author>xyz</author><price>1234</price></Book></BookDetails>";
Document doc = Jsoup.parse(xml);
然后使用以下方法更新内存中xml book的价格:
public void updatePrice(Document doc, String bookName, String newPrice){
for(Element name : doc.select("book name")){
if(name.ownText() == bookName){
name.parent().getElementsByTag("price")[0].text(newPrice);
}
}
}
您可以轻松调用的方法:
updatePrice(doc, "java", "234");
正如我之前所说的那样会更新内存中的xml,那么你需要在文件中保存由变量doc表示的修改后的xml。