我正在与大多数未知内容的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返回所有普通文本作为"wrappingTag"的值,但不包括"formatTag"值的部分。这些当然是分开的。所以像以前那样把文本放在一起对我来说似乎是不可能的。
是否有一个简单的方法来解决这个在simplexml或我必须解析我自己?
谢谢亚历克斯
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])'));
演示:https://eval.in/161109