0

我有一个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 文件。

这个怎么做?

4

1 回答 1

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书在内存中的价格:

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 保存在文件中。

于 2012-04-21T15:12:12.093 回答