修改特定节点上的XML文件

时间:2018-04-12 06:16:11

标签: java xml xml-parsing

我有像这样的xml

<list>
<job>
    <id>B001</id>
    <name>Job1</name>
    <time>7</time>
    <status>success</status>
</job>
<job>
    <id>B002</id>
    <name>Job2</name>
    <time>1</time>
    <status>success</status>
</job>

我想用特定名称更改特定作业。我在google上做了一些搜索,但是没有帮助。任何人都知道在Java中这样做的好方法吗?或者文档也将受到赞赏。 我想知道一种方法可能是changeTimeOfJob(String id, int time)

1 个答案:

答案 0 :(得分:1)

尝试使用jsoup

public String changeTimeOfJob(String id, int time){
    Document doc = Jsoup.parse(input, "", Parser.xmlParser());
    String selection = "job > id:contains("+id+")";
    Element resultLinks = doc.select(selection).first();
    resultLinks.parent().select("time").first().text(String.valueOf(time));
    return doc.html(); // Gives you the resulting XML you can write back to file
}

如果您将xml作为String,请使用:

String html = "<YOURXML>";
Document doc = Jsoup.parse(html);

查看https://jsoup.org/cookbook/extracting-data/selector-syntax以获取更多信息。

编辑:为您选择选择器。 Edit2:更新了完整代码

Edit3:我现在实际测试过,之前有一些错误。