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 TEXT
/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