我需要获取以下XML内容的HTML内容answer:
answer
<qa> <question>Who are you?</question> <answer>Who who, <strong>who who</strong>, <em>me</em></answer> </qa>
因此,我想获取字符串“谁,谁 strong>,我 em>”。
如果我answer使用SimpleXMLElement,则可以调用asXML()以获取“ 谁,谁 strong>,我 em> answer>”,但是如何获取内部XML没有元素本身包裹的元素的元素?
SimpleXMLElement
asXML()
我更喜欢不涉及字符串函数的方法,但是如果那是唯一的方法,那就这样吧。
据我所知,没有内置的方法可以做到这一点。我建议尝试使用SimpleDOM,这是一个扩展了SimpleXMLElement的PHP类,它为大多数常见问题提供了便捷的方法。
include 'SimpleDOM.php'; $qa = simpledom_load_string( '<qa> <question>Who are you?</question> <answer>Who who, <strong>who who</strong>, <em>me</em></answer> </qa>' ); echo $qa->answer->innerXML();
否则,我会看到两种方法。首先是将您的代码转换SimpleXMLElement为DOMNodethen循环,childNodes以构建XML。另一种方法是先调用asXML()然后使用字符串函数删除根节点。但是请注意,asXML()有时可能会返回标记,该标记实际上 在 调用它的节点 之外 ,例如XML Prolog或Processing Instructions。
DOMNode
childNodes