Как добавить элемент в существующий элемент в объекте SimpleXML - PullRequest
0 голосов
/ 20 марта 2012

У меня есть XML-документ, подобный следующему:

<contents>
  <module id="0">
  <module id="1">
  ...
</contents>

Я хотел бы найти документ по 'id', а затем добавить одного или нескольких дочерних элементов в узел, который возвращает поиск. Как можно сделать это с SimpleXML или комбинацией SimpleXML / DOM?

Ответы [ 2 ]

0 голосов
/ 20 марта 2012

Вы можете использовать либо PHP: DOm, либо PHP: SimpleXML. Это зависит от того, чего вы хотите достичь.

Если вы просто хотите добавить новый узел, используйте PHP: SimpleXML. довольно легко понять. Но добавить новый узел в конце существующих дочерних узлов.

http://www.php.net/manual/en/simplexmlelement.addchild.php

, если вы хотите добавить новый узел перед любым конкретным дочерним узлом. Вы должны использовать PHP: DOm.Will даст вам больше свободы, но немного освоится.

Скажите, хотите ли вы добавить узел после использования определенного узла: http://www.php.net/manual/en/domnode.appendchild.php

Скажите, хотите ли вы добавить узел перед использованием определенного узла: http://www.php.net/manual/en/domnode.insertbefore.php

Надеюсь, эта помощь

~ K

0 голосов
/ 20 марта 2012

Это способ поиска элемента на основе идентификатора с использованием запроса xpath в простом xml:

$nodes = $xml->xpath('//DocSum[Item[@id="0"]]');
$book = $nodes[0];

Добавить детей - это что-то вроде этого:

$book->addChild('name', 'Mr. Parser');
$book->addChild('actor', 'John Doe');

Вот более точный учебник .

...