我正在使用大多数未知内容的XML。 我正在将它转换为非常粗略的HTML输出。
但我在XML中遇到这种结构:
<wrappingTag>
text text text
<formatTag>formatted text</formatTag>
continued text text text text
<formatTag2>much more formatted text</formatTag2>
continued text text text text
</wrappingTag>
当我使用simpleXML元素获取数据时,simpleXML将所有正常文本作为&#34; wrappingTag&#34;中的值返回。但没有来自&#34; formatTag&#34;值。这些当然是分开的。 因此,将文本放在原处似乎对我来说是不可能的。
有一种简单的方法可以在simplexml中解决这个问题,还是我必须自己解析它?
感谢名单
亚历
答案 0 :(得分:1)
DOM不会受此影响,您可以将它们互相转换。
$element = simplexml_load_string($xml);
$node = dom_import_simplexml($element);
var_dump($node->nodeValue);
DOMElement :: $ nodeValue是所有后代文本节点(包括cdata)的文本内容。
从节点获取文本内容的另一种可能性是DOMXPath :: evaluate()。
$dom = new DOMDocument();
$dom->loadXml($xml);
$xpath = new DOMXpath($dom);
var_dump($xpath->evaluate('string(//wrappingTag[1])'));