xmodifier - XML 创建和编辑工具
GPL
跨平台
Java
软件简介
xmodifier 是使用 XPATH 创建或者更 XML。XPATH 可以用来搜索 XML,但是有时候也可以用来编辑或者创建 XML:
XPath | Value | Desc |
---|---|---|
/ns:root/ns:element1 |
add | |
/ns:root/ns:element2[@attr=1] |
add | |
/ns:root/ns:element2/@attr | 1 |
add |
/ns:root/ns:element1/ns:element11 |
add | |
/ns:root/ns:element3 | TEXT |
add |
/ns:root/ns:element1[ns:element12]/ns:element13 |
add | |
//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