XPath в PHP4 и значение содержимого - PullRequest
1 голос
/ 06 января 2011

Я пытаюсь получить содержимое XML:

$xmlstr = "<?xml version=\"1.0\" ?>
           <article>
             <Art>
               <test>Hello</test>
             </Art>
             <Another>
               <g>gooo</g>
             </Another>
           </article>";
$dom    =domxml_open_mem($xmlstr);


$calcX = &$dom->xpath_new_context();

$cnt = $calcX->xpath_eval($querystring);

foreach ($cnt->nodeset as $node)
{  
    print_r($node);

} 

Есть ли способ получить содержимое, когда строка запроса // article / Art?

То, что я ищу:

<test>Hello</test>

Если я использую $ node-> get_content (), то результатом будет Hello.

Я работаю с PHP4, поэтому я не могу использовать SimpleXML [который является PHP5].$ node is DOMElement.

$ node-> nodeValue вызывает: Примечание: неопределенное свойство: nodeValue в .php в строке 19

Ответы [ 2 ]

2 голосов
/ 07 января 2011

Есть ли способ получить контент, когда строка запроса // article / Art?

Что я ищу:

<test>Hello</test>

Использование :

/article/Art/*

Это означает : выбрать все элементы, которые являются дочерними элементами элемента Art, который является дочерним элементом верхнего элемента с именем article.

Если вы хотите, чтобы все узлы были ниже /article/Art, используйте :

/article/Art/node()

Это выбирает все элементы, текстовые узлы, узлы комментариев и узлы инструкций обработки, которые являются дочерними элементами верхнего элемента с именем article.

1 голос
/ 06 января 2011

Некоторое время назад я использовал старое расширение PHP4 DOM, но попробуйте

Пример:

foreach ($cnt->nodeset as $node) {  
    echo $node->dump_node; 
}

Если вышеприведенное не дает того, что вы ищете, попробуйте другие методы dump_* в DomDocument.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...