抱歉,如果我没有很好地理解您的问题:
“因此修改元素不会对原始文档产生影响”是什么意思?
使用一个简单的 xml,我可以使用您的循环进行一些更改,测试 xml 将是:
<measure><note/><note at='1'/></measure>
我会找到属性at='1'的注释,然后我会在它上面添加文本和它之前和之后的一个节点,然后我会检查原始文档是否已更改,代码:
public static void main(String[] args) {
String xml = "<measure><note/><note at='1'/></measure>";
Document parse = Jsoup.parse(xml, "", Parser.xmlParser());
for (Element thismeasure : parse.getElementsByTag("measure")) {
for (Element thisnote : thismeasure.children()) {
if (thisnote.attr("at").equals("1")){
thisnote.text("newText");
thisnote.attr("newAttr", "value");
thisnote.before(new Element(Tag.valueOf("test1"),""));
thisnote.after(new Element(Tag.valueOf("test2"),""));
}
}
}
System.out.println(parse);
}
将输出:
<measure>
<note />
<test1></test1>
<note at="1" newattr="value">
newText
</note>
<test2></test2>
</measure>
正如预期的那样。
我希望它会以任何方式提供帮助。