xmodifierXML 创建和编辑工具
xmodifier 是使用 XPATH 创建或者更 XML。XPATH 可以用来搜索 XML,但是有时候也可以用来编辑或者创建 XML:
| XPath | Value | Desc |
|---|---|---|
| /ns:root/ns:element1 | add <ns:element1/> | |
| /ns:root/ns:element2[@attr=1] | add <ns:element2 attr="1"/> | |
| /ns:root/ns:element2/@attr | 1 | add <ns:element2 attr="1"/> |
| /ns:root/ns:element1/ns:element11 | add <ns:element11/> | |
| /ns:root/ns:element3 | TEXT | add <ns:element3>TEXT</ns:element3> |
| /ns:root/ns:element1[ns:element12]/ns:element13 | add <ns:element13/> | |
| //PersonList/Person[2]/Name | NewName | set the second Person node's Name Text |
| //PersonList/Person[2]/Name/text() | NewName | set the second Person node's Name Text |
| //PersonList/Person[1]/Name(:delete) | delete this Name node | |
| //PersonList/Person(:add)/Name | NewName | alway add a new Person node |
| //PersonList/Person(:insertBefore(Person[Name='Name2']))/Name | NewName | add a new Person node before Person named "Name2" |
代码示例:
创建新的 XML
Document document = createDocument(); //empty document
XModifier modifier = new XModifier(document);
modifier.setNamespace("ns", "http://localhost");
// create an empty element
modifier.addModify("/ns:root/ns:element1");
// create an element with attribute
modifier.addModify("/ns:root/ns:element2[@attr=1]");
// append an new element to existing element1
modifier.addModify("/ns:root/ns:element1/ns:element11");
// create an element with text
modifier.addModify("/ns:root/ns:element3", "TEXT");
modifier.modify();
XML:
<root xmlns="http://localhost">
<element1>
<element11/>
</element1>
<element2 attr="1"/>
<element3>TEXT</element3>
</root>
修改现有的 XML:
原始 XML:
<root xmlns="http://localhost">
<element1>
<element11></element11>
</element1>
<element1>
<element12></element12>
</element1>
<element2></element2>
<element3></element3>
</root>
Document document = readDocument("modify.xml");
XModifier modifier = new XModifier(document);
modifier.setNamespace("ns", "http://localhost");
modifier.addModify("/ns:root/ns:element1[ns:element12]/ns:element13");
modifier.modify(); 修改之后的 XML:
<root xmlns="http://localhost">
<element1>
<element11/>
</element1>
<element1>
<element12/>
<element13/>
</element1>
<element2/>
<element3/>
</root>
添加了新元素 ns:element13
评论
