如何使用 xmlstarlet 将文本添加到 xml 结构
How to add text to an xml structure using xmlstarlet
我正在尝试使用 xmlstarlet 将文本字段添加到 xml 结构,但无法正常工作。这是我得到的最接近的。
xmlstarlet edit --append "//foo/bar[@baz='qux']" -t text -n grault -v "garply" <<EOF
<foo>
<bar baz="qux">
<quux quuz="corge"/>
</bar>
</foo>
EOF
这导致:
<?xml version="1.0"?>
<foo>
<bar baz="qux">
<quux quuz="corge"/>
</bar>garply
</foo>
虽然我预料到了:
<?xml version="1.0"?>
<foo>
<bar baz="qux">
<quux quuz="corge"/>
<grault>garply</grault>
</bar>
</foo>
有人能指教我方法中的错误吗?
提前致谢。
我假设您需要一个子节点:
xmlstarlet edit --subnode "//foo/bar" -t elem -n "grault" -v "garply" file.xml
输出:
<?xml version="1.0"?>
<foo>
<bar baz="qux">
<quux quuz="corge"/>
<grault>garply</grault>
</bar>
</foo>
参见:xmlstarlet edit
我正在尝试使用 xmlstarlet 将文本字段添加到 xml 结构,但无法正常工作。这是我得到的最接近的。
xmlstarlet edit --append "//foo/bar[@baz='qux']" -t text -n grault -v "garply" <<EOF
<foo>
<bar baz="qux">
<quux quuz="corge"/>
</bar>
</foo>
EOF
这导致:
<?xml version="1.0"?>
<foo>
<bar baz="qux">
<quux quuz="corge"/>
</bar>garply
</foo>
虽然我预料到了:
<?xml version="1.0"?>
<foo>
<bar baz="qux">
<quux quuz="corge"/>
<grault>garply</grault>
</bar>
</foo>
有人能指教我方法中的错误吗?
提前致谢。
我假设您需要一个子节点:
xmlstarlet edit --subnode "//foo/bar" -t elem -n "grault" -v "garply" file.xml
输出:
<?xml version="1.0"?>
<foo>
<bar baz="qux">
<quux quuz="corge"/>
<grault>garply</grault>
</bar>
</foo>
参见:xmlstarlet edit