使用Java删除XML节点
我想根据jQuery结果从XML中删除XML节点。我有这样的XML:使用Java删除XML节点,java,xml,xquery,Java,Xml,Xquery,我想根据jQuery结果从XML中删除XML节点。我有这样的XML: <?xml version="1.0" encoding="UTF-8"?> <list> <member name="James"> <friendlist> <friend>0001</friend> <friend>0002</friend>
<?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>
0001
0002
0003
0003
0002
0001
0001
0003
0004
我想删除名为“james”的complete
标记,这样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>
0003
0002
0001
0001
0003
0004
我使用以下代码获取节点并将其删除,但得到与输出相同的XML。它不是删除XML节点,而是提供相同的XML
那么,如何使用xQuery并从XML中删除XML节点呢?我使用以下工具执行类似操作:
不确定从文件读取XML是否符合您的设置。但是有几种方法可以创建投影(从IOStream、资源、DOM节点、字符串…)一般方法:将XML反序列化(解析)为对象,遍历对象并删除需要的元素,然后序列化回XML。可以使用任意数量的库来执行此操作。查找DOM和SAX解析器。“我正在使用以下代码[…]”。哪种代码?我没有看到任何。嗨,Dan Temple,你能提供一些链接或示例吗?那么,你确定你指的是Java,正如你提到的jQuery,它实际上是JavaScript。是的,我确定,因为我正在使用Java解析器解析xml,并使用jQuery提取节点(到达节点)。谢谢大家的建议,所有的建议在某种程度上帮助我得到了我想要的东西。要执行此操作,请找到其左侧的记号标记,然后单击它,使其变为绿色。这会将其标记为您问题的答案,并将您的问题标记为已解决。它也会奖励你的帮助者一点点的回答,从而鼓励他们也帮助其他人。谢谢
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");
}
}