使用XPath创建XML节点

Create XML nodes using XPath

本文关键字:节点 XML 创建 XPath 使用      更新时间:2023-10-16

是否可以使用XPath创建XML节点?

假设我得到了以下XML:

<data>
    <someValue1></someValue2>
    <someValue2></someValue2>
    <someArray>
        <val></val>
        <val></val>
        <val></val>
    </someArray>
</data>

我要做的是使用XPath(例如/data/someValue1)在XML中获取一个节点,并设置该节点的值。这当然很容易用任何支持XML+XPath的语言和框架来实现。

但是当我的XPath表达式指向一个不存在的节点时,我想以某种方式创建这个节点即使XPath的表达更复杂(例如/data/someArray/val[5])。

这种自动节点创建充其量应该得到某些库的支持。有没有一种简单的方法来实现我想要实现的目标?目前,我正在使用C++Qt以及QXmlQuery类。

是否可以使用XPath创建XML节点?

不,不是。XPath只能选择现有节点。

如果要创建新节点,则需要XSLT或XQuery。

但即便如此,创建一个满足给定路径(如/a/b/c/foo[5])的节点也并非易事,也不是语言可以自动完成的事情。