Здраствуйте! Есть такой вот ХМЛ: Код (Text): <root> <comment id="09661133027"> <date>09.03.09 11:33</date> <text>aaa</text> </comment> <comment id="09661159088"> <date>09.03.09 11:59</date> <text>asdad</text> </comment> </root> Можно ли удалить как-то только тот блок <comment>, чей id аттрибут я указал, допустим 09661133027? что-то типа: unset($xml->comment->@id->09661133027) и если предыдущие реально, то как создать запись только в блоке с определённым id? :roll:
Используй XPath и функции для PHP для работы с DOM и XPath http://www.zvon.org/xxl/XPathTutorial/G ... mples.html http://www.php.ru/manual/ref.dom.html Пример 6 BBB[@id='b1'] Выбираются элементы BBB, имеющие атрибут id со значением b1 HTML: <AAA> [b]<BBB id = "b1"/>[/b] <BBB name = " bbb "/> <BBB name = "bbb"/> </AAA>
aa.xml Код (Text): <root> <comms id='11'> <comment> <date>09.03.09 11:33</date> <text>aaa</text> </comment> <comment> <date>09.03.09 11:33</date> <text>aaa</text> </comment> </comms> <comms id='22'> <comment> <date>09.03.09 11:59</date> <text>asdad</text> </comment> </comms> </root> PHP: $comm_doc = new DOMDocument('1.0'); $comm_doc->load('aa.xml'); $comm_xpath = new DOMXpath($comm_doc); foreach($comm_xpath->query('//comms[@img='11']/comment') as $comment) { echo $comment->text; [b]// вопрос о этой строке...[/b] } Таким образом с simplexml всё рабоатет, а с DOM нет. Как мне вывести значения элемента <text> из XML?
print_r $comment: DOMElement Object ( ) получается единственный способ вывести значение <text>'a это так?: PHP: $comm_doc = new DOMDocument('1.0'); $comm_doc->load('aa.xml'); $comm_xpath = new DOMXpath($comm_doc); foreach($comm_xpath->query('//comms[@img='11']/comment') as $comment) { $gettext = $comment->getElementsByTagName('text')->item(0); echo $gettext->nodeValue; } Иначе никак? Ибо с simplexml тоже самое в двуx коммандаx можно было добиться... =\