小编典典

PHP SimpleXML获取innerXML

php

我需要获取以下XML内容的HTML内容answer

<qa>
 <question>Who are you?</question>
 <answer>Who who, <strong>who who</strong>, <em>me</em></answer>
</qa>

因此,我想获取字符串“谁,”。

如果我answer使用SimpleXMLElement,则可以调用asXML()以获取“ 谁, ”,但是如何获取内部XML没有元素本身包裹的元素的元素?

我更喜欢不涉及字符串函数的方法,但是如果那是唯一的方法,那就这样吧。


阅读 217

收藏
2020-05-26

共1个答案

小编典典

据我所知,没有内置的方法可以做到这一点。我建议尝试使用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();

否则,我会看到两种方法。首先是将您的代码转换SimpleXMLElementDOMNodethen循环,childNodes以构建XML。另一种方法是先调用asXML()然后使用字符串函数删除根节点。但是请注意,asXML()有时可能会返回标记,该标记实际上
调用它的节点 之外 ,例如XML Prolog或Processing Instructions。

2020-05-26