У меня есть пример, где мне нужно обновить узел XML на основе XPath. SimpleXMLElement
делает это достаточно простым, используя XPath для захвата узла, а затем обновляет его значение в формате перекрестных ссылок.Создание XML из XPath
Однако это не работает вообще, если узел фактически не существует, который необходимо обновить. Существуют ли какие-либо простые способы автоматического генерации XML, который соответствует XPath, если он не существует?
Пример:
<example>
<childNode1>green</childNode1>
</example>
Учитывая XML, я мог легко выполнить команду XPATH, чтобы получить <childNode1>
загрузив вверх XML в SimpleXMLElement
и затем запустить $xml->xpath("example/childNode1");
. Затем я мог бы установить значение возвращаемого SimpleXMLElement
на что-то новое, а затем сохранить xml.
Однако, если мне нужно было установить что-то вроде <childNode2>
, то $xml->xpath("example/childNode2")
ничего не вернет, и установить значение не будет, или подтвердить, что XML был построен.
Итерируется через XPath и анализирует его значения, единственный способ подтвердить, что каждый дочерний узел существует, а затем построить их по мере его появления или есть лучший способ генерировать необходимый XPath?
Я ответил на что-то подобное для JavaScript некоторое время назад: http://stackoverflow.com/a/26296087/2265374 – ThW