处理 XML 数据时,提取特定部分至关重要。一项常见任务是获取元素的内部 HTML,不包括元素的标签。本文探讨了如何使用 PHP SimpleXML 来完成此任务。
考虑以下 XML:
<code class="xml"><qa> <question>Who are you?</question> <answer>Who who, <strong>who who</strong>, <em>me</em></answer> </qa></code>
我们的目标是检索“的内部 HTML” answer”元素,即:
<code class="html">Who who, <strong>who who</strong>, <em>me</em></code>
PHP不提供内置方法来访问元素的内部XML。但是,可以创建自定义函数来满足此需求。其中一个函数 SimpleXMLElement_innerXML 定义如下:
<code class="php">function SimpleXMLElement_innerXML($xml) { $innerXML = ''; foreach (dom_import_simplexml($xml)->childNodes as $child) { $innerXML .= $child->ownerDocument->saveXML( $child ); } return $innerXML; }</code>
该函数利用 PHP DOM 扩展将我们的 SimpleXMLElement ($xml) 转换为 DOMNode 对象。然后它迭代其子节点,将每个节点的 XML 表示形式保存到 $innerXML 字符串中。最后,$innerXML 保存元素的内部 HTML。
要使用 SimpleXMLElement_innerXML 函数,我们可以编写:
<code class="php">$xml = simplexml_load_string('<qa><answer>Who who, <strong>who who</strong>, <em>me</em></answer></qa>'); $innerXML = SimpleXMLElement_innerXML($xml->answer); echo $innerXML; // Outputs: Who who, <strong>who who</strong>, <em>me</em></code>
使用 SimpleXMLElement_innerXML 函数,检索元素的内部 XML 变得简单。通过利用 DOM 扩展,我们可以精确控制 XML 操作。
以上是如何使用 PHP SimpleXML 获取内部 XML?的详细内容。更多信息请关注PHP中文网其他相关文章!