首页  >  文章  >  后端开发  >  如何在 PHP 中从 SimpleXMLElement 中提取内部 XML 内容?

如何在 PHP 中从 SimpleXMLElement 中提取内部 XML 内容?

DDD
DDD原创
2024-10-27 19:09:30647浏览

How to Extract Inner XML Content from SimpleXMLElement in PHP?

PHP SimpleXML:访问内部 XML

在使用 PHP 的 SimpleXML 进行 XML 操作时,通常需要检索元素的内部 HTML 内容没有封闭的标签。本文探讨了如何使用 SimpleXML 来实现此目的。

考虑以下 XML 结构:

<code class="xml"><qa>
  <question>Who are you?</question>
  <answer>Who who, <strong>who who</strong>, <em>me</em></answer>
</qa></code>

要将“answer”元素的内部内容提取为字符串,以下方法是可用:

使用 asXML():

<code class="php">$answer = new SimpleXMLElement($xml);
$innerXML = $answer->asXML(); // Returns "<answer>Who who, <strong>who who</strong>, <em>me</em></answer>"</code>

使用 DOM 文档:

<code class="php">$answer = new SimpleXMLElement($xml);
$dom = dom_import_simplexml($answer);
$innerXML = $dom->ownerDocument->saveXML($dom); // Returns "Who who, <strong>who who</strong>, <em>me</em>"</code>

使用自定义函数:

可以定义以下自定义函数来提取内部 XML:

<code class="php">function SimpleXMLElement_innerXML($xml)
{
  $innerXML = '';
  foreach (dom_import_simplexml($xml)->childNodes as $child)
  {
    $innerXML .= $child->ownerDocument->saveXML($child);
  }
  return $innerXML;
}</code>

使用此函数:

<code class="php">$innerXML = SimpleXMLElement_innerXML($answer); // Returns "Who who, <strong>who who</strong>, <em>me</em>"</code>

这些方法提供用于提取 SimpleXML 元素内部 XML 的选项,从而实现 XML 内容的高效操作和检索。

以上是如何在 PHP 中从 SimpleXMLElement 中提取内部 XML 内容?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn