Синтаксический анализ XML-тега с использованием PHP DOM - XPATH без потери внутренних тегов и данных. - PullRequest
1 голос
/ 10 ноября 2011

Я хочу проанализировать данные, которые выглядят примерно так:

<table-wrap id ="T1">
<table-wrap-foot>
<fn>
<p>
Blah blah blah <strong>dsf</strong> blah blah blah <br>
</p>
</fn>
<table-wrap-foot>
<table-wrap>

Когда я позвоню

$x = $xpath->query("//table-wrap-foot[@id='" . $tableAttributes . "']/p")->item(0);

, я получу узел абзаца, включающий теги и данные внутрис тегами <p>.

$x = $xpath->query("//table-wrap-foot[@id='".$tableAttributes."']/p")->item(0)->nodeValue;

Я получу данные внутри тегов

, но они не содержат тег <strong> ..

Поэтому мое требованиеМне нужны данные вместе с тегами внутри, за исключением тегов <p>.

Есть ли возможность сделать это?

1 Ответ

0 голосов
/ 10 ноября 2011

Вы можете просто выбрать node() потомков вашего элемента p и повторить список.Взяв ваше примерное выражение по номиналу (хотя оно не совпадает с введенным вами примером):

//table-wrap-foot[@id='".$tableAttributes."']/p/node()

Обратите внимание, что таких узлов пять:

#text 
strong
#text 
br
#text

Еще более уместнобыло бы выбрать объединение этих узлов текста и элемента:

//table-wrap-foot[@id='".$tableAttributes."']/p/*|
//table-wrap-foot[@id='".$tableAttributes."']/p/text()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...