gpt4 book ai didi

java - 使用 Java 删除 XML 节点

转载 作者:行者123 更新时间:2023-12-01 12:25:06 24 4
gpt4 key购买 nike

我想根据 jQuery 结果从 XML 中删除 XML 节点。我有这样的 XML:

<?xml version="1.0" encoding="UTF-8"?>
<list>
<member name="James">
<friendlist>
<friend>0001</friend>
<friend>0002</friend>
<friend>0003</friend>
</friendlist>
</member>
<member name="Jamie">
<friendlist>
<friend>0003</friend>
<friend>0002</friend>
<friend>0001</friend>
</friendlist>
</member>
<member name="Katie">
<friendlist>
<friend>0001</friend>
<friend>0003</friend>
<friend>0004</friend>
</friendlist>
</member>
</list>

我想删除完整的<member>名称等于“james”的标签,因此 XML 应如下所示

<?xml version="1.0" encoding="UTF-8"?>
<list>

<member name="Jamie">
<friendlist>
<friend>0003</friend>
<friend>0002</friend>
<friend>0001</friend>
</friendlist>
</member>
<member name="Katie">
<friendlist>
<friend>0001</friend>
<friend>0003</friend>
<friend>0004</friend>
</friendlist>
</member>
</list>

我正在使用以下代码来获取节点并删除它,但获得相同的 XML 作为输出。它不是删除 XML 节点,而是给出相同的 XML。

那么,如何使用 xQuery 并从 XML 中删除 XML 节点?

最佳答案

我用 XMLBeam 做这样的事情:

public class RemoveNode {
public interface Projection {
@XBDelete("/list/member[@name='{0}']")
Projection removeMember(String name);
}

public void main(String[] args) {
Projection projection = new XBProjector(Flags.TO_STRING_RENDERS_XML).io.file("yourfile.xml").read(projection.class);
System.out.println("Before:"+projection);
System.out.println("After:"+projection.removeMember("james");
}
}

不确定从文件中读取 XML 是否符合您的设置。但是有多种方法可以创建投影(从 IOStream、资源、DOM 节点、字符串...)

关于java - 使用 Java 删除 XML 节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26425664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com