Избегайте резки элементов разметки в узлах xml с помощью переполнения стека

Я хочу проанализировать XML-файл DocBook с помощью PHP. SimpleXMLElement обрезает некоторые элементы разметки.

<section>
<title>SUSPEND</title>
<para>The <database>SUSPEND</database> command <quote>breaks</quote> the atomicity of the block in which it is located.</para>
<para>...</para>
</section>

Я использую этот код для разбора моих элементов para:

$paras = $xml->xpath("//*[starts-with(local-name(), 'para')]");
foreach($paras as $para) {
echo $para[0];
}

Это отрезает мою разметку

<database>SUSPEND</database> and <quote>breaks</quote>

в результате чего

The command the atomicity of the block in which it is located.

Но то, что мне нужно, это:

The <database>SUSPEND</database> command <quote>breaks</quote> the atomicity of the block in which it is located.

Итак, как я могу получить весь узел, включая его элементы, в виде строки?

0

Решение

Просто используйте asXML способ получить дерево с корнем в найденном элементе

foreach($paras as $para) {
echo $para->asXML();
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]