加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP SimpleXML获取innerXML

发布时间:2020-12-13 13:45:04 所属栏目:PHP教程 来源:网络整理
导读:我需要在这一点 XML中获取答案的HTML内容: qa questionWho are you?/question answerWho who,strongwho who/strong,emme/em/answer/qa 所以我希望得到一个字符串“Who who, strong who who / strong, em me / em”. 如果我将答案作为SimpleXMLElement,我可
我需要在这一点 XML中获取答案的HTML内容:
<qa>
 <question>Who are you?</question>
 <answer>Who who,<strong>who who</strong>,<em>me</em></answer>
</qa>

所以我希望得到一个字符串“Who who,< strong> who who< / strong>,< em> me< / em>”.

如果我将答案作为SimpleXMLElement,我可以调用asXML()来获取“< answer>谁是谁,< strong>谁< / strong>,< em>我< / em>< / answer> “,但是如何在没有元素本身的情况下获取元素的内部XML?

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

据我所知,没有内置的方法来实现这一点.我建议尝试 SimpleDOM,这是一个扩展SimpleXMLElement的PHP类,它为大多数常见问题提供了方便的方法.
include 'SimpleDOM.php';

$qa = simpledom_load_string(
    '<qa>
       <question>Who are you?</question>
       <answer>Who who,<em>me</em></answer>
    </qa>'
);
echo $qa->answer->innerXML();

否则,我会看到两种方法.第一种方法是将SimpleXMLElement转换为DOMNode,然后遍历其childNodes以构建XML.另一种方法是调用asXML()然后使用字符串函数删除根节点.但请注意,asXML()有时可能会返回实际位于调用它的节点之外的标记,例如XML prolog或Processing Instructions.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读