java - 修改特定节点的XML文件

标签 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>

我想更改具有特定名称的特定作业。我在谷歌上做了一些搜索,但没有任何帮助。有人知道在Java中做到这一点的好方法吗?或者医生也将不胜感激。 我想知道一个方法可能是 changeTimeOfJob(String id, int time)

最佳答案

尝试使用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 html = "<YOURXML>";
Document doc = Jsoup.parse(html);

查看https://jsoup.org/cookbook/extracting-data/selector-syntax欲了解更多信息。

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

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

关于java - 修改特定节点的XML文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49789251/

相关文章:

java - 如何向 MAC App Store 提交 JavaFX 应用程序?

Java jackson : Can I hold in a json the type to deserialize it to?

java - @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS)在返回响应时不起作用

xml - 如何指示需要模式 1.1 功能的 xml 模式?

xml - 在 Protege-OWL 编辑器中显示关系

java - 如何在运行时动态改变SeekBar的进度颜色?

iphone - 解析 HTML 内容以与 iPhone 应用程序一起使用

c# - 解析XML文件的节点

java - catch 和 finally 中 return 语句的行为

c# - 解析可以是单行或多行的 XML 文件