使用java根据节点号删除xml节点?
这里我有xml结构使用java根据节点号删除xml节点?,java,xml,dom,xml-parsing,xmlnode,Java,Xml,Dom,Xml Parsing,Xmlnode,这里我有xml结构 <book> <!--node 0--> <id>1111</id> <name>abacd</name> <author>abcd</author> <price>700</price> <category>abcd</category> </book>
<book> <!--node 0-->
<id>1111</id>
<name>abacd</name>
<author>abcd</author>
<price>700</price>
<category>abcd</category>
</book>
<book> <!--node 1-->
<id>2222</id>
<name>abacd</name>
<author>abcd</author>
<price>700</price>
<category>abcd</category>
</book>
<book> <!--node 2-->
<id>3333</id>
<name>abacd</name>
<author>abcd</author>
<price>700</price>
<category>abcd</category>
</book>
请帮助我获取所需的输出。您的XML缺少根元素。以下是我的更正版本:
<root>
<book> <!--node 0 -->
<id>1111</id>
<name>abacd</name>
<author>abcd</author>
<price>700</price>
<category>abcd</category>
</book>
<book> <!--node 1 -->
<id>2222</id>
<name>abacd</name>
<author>abcd</author>
<price>700</price>
<category>abcd</category>
</book>
<book> <!--node 2 -->
<id>3333</id>
<name>abacd</name>
<author>abcd</author>
<price>700</price>
<category>abcd</category>
</book>
}
此程序打印出:
Deleted 1 nodes.
在这里@ppuskar,我不想使用XPathFactory xpf=XPathFactory.newInstance;XPath=xpf.newXPath;XPathExpression expression=xpath.compile//A/B[C/E/text=13];请引导我
public class DeleteNodeTest {
public interface Books {
@XBDelete("//book[id=$PARAM0]")
int deleteBooks(int id);
}
@Test
public void deleteNode() throws IOException {
Books books = new XBProjector(Flags.TO_STRING_RENDERS_XML).io().url("resource://test.xml").read(Books.class);
System.out.println("Deleted " + books.deleteBooks(1111) + " nodes.");
System.out.println(books);
}
Deleted 1 nodes.
<book> <!--node 1 -->
<id>2222</id>
<name>abacd</name>
<author>abcd</author>
<price>700</price>
<category>abcd</category>
</book>
<book> <!--node 2 -->
<id>3333</id>
<name>abacd</name>
<author>abcd</author>
<price>700</price>
<category>abcd</category>
</book>