Возможно ли создание узлов XML
с использованием XPath
?
Предположим, у меня есть следующий XML:
<data>
<someValue1></someValue2>
<someValue2></someValue2>
<someArray>
<val></val>
<val></val>
<val></val>
</someArray>
</data>
Я пытаюсь сделать узел внутри XML
с помощью XPath
(например, /data/someValue1
) и установить значение узла. Это, конечно, легко достичь с помощью любого языка и фреймворка, поддерживающего XML
+ XPath
.
Но когда мое выражение XPath
указывает на несуществующий узел, я хочу каким-то образом создать этот узел. Даже если выражение XPath
более сложное (например, /data/someArray/val[5]
).
В лучшем случае это автоматическое создание узлов должно поддерживаться некоторой библиотекой. Есть ли простой способ достичь того, чего я пытаюсь достичь? В настоящее время я использую C++ с Qt и классом QXmlQuery
.
Возможно ли создание узлов XML с использованием XPath?
Нет, это не так. XPath может выбирать только существующие узлы.
Если вы хотите создавать новые узлы, вам нужны XSLT или XQuery.
Но даже тогда создание узла, удовлетворяющего заданному пути, как /a/b/c/foo[5]
, нетривиально, а не то, что языки могут делать автоматически.