”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何从 PHP 中的 SimpleXMLElement 提取内部 XML 内容?

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

发布于2024-11-16
浏览:770

How to Extract Inner XML Content from a SimpleXMLElement in PHP?

PHP SimpleXML:访问内部 XML

在 PHP XML 解析领域,SimpleXML 扩展允许开发人员轻松操作 XML 文档。然而,提取 XML 元素的内部内容(排除周围的元素标签)可能具有挑战性。

考虑以下 XML 片段:

Who are you?Who who, who who, me

要仅检索“answer”元素的内容(即“Who who, who who, me”),我们需要绕过默认的 asXML() 方法。相反,我们使用 dom_import_simplexml() 函数引入一个优雅的解决方案。

function SimpleXMLElement_innerXML($xml)
  {
    $innerXML = '';
    foreach (dom_import_simplexml($xml)->childNodes as $child)
    {
        $innerXML .= $child->ownerDocument->saveXML( $child );
    }
    return $innerXML;
  }

通过使用此函数,我们可以访问任何元素的内部 XML:

$xml = simplexml_load_string($xmlString);
$innerAnswer = SimpleXMLElement_innerXML($xml->answer);

生成的 $innerAnswer 变量将包含所需的字符串:“Who who, who who, me” 。此方法保留了内部 XML 中的原始格式和字符实体,使其成为维护提取内容完整性的理想选择。

最新教程 更多>
  • 为什么我的 Bootstrap 4 列是垂直对齐而不是水平对齐?
    为什么我的 Bootstrap 4 列是垂直对齐而不是水平对齐?
    Bootstrap 4 列对齐不一致在从 Bootstrap 3 到 4 的过渡中,您注意到您的列是垂直对齐的,而不是水平地。这可以归因于 Bootstrap 4 中网格系统的更改。Col-12 Issue在 Bootstrap 3 中,您可以使用以下方法将列包装在父行中“col-12”类。这在 B...
    编程 发布于2024-11-16
  • 如何在 Python 中确定生成器是否为空
    如何在 Python 中确定生成器是否为空
    确定生成器的空性在Python中,生成器是用于惰性评估和迭代大型数据集的强大工具。然而,由于发电机的动态特性,确定发电机是否为空是一个独特的挑战。与列表或元组不同,生成器没有大小属性​​,简单地迭代它们会导致 StopIteration 异常。Peek 与 HasNext有些人可能会建议使用 pee...
    编程 发布于2024-11-16
  • 如何基于公共列合并多个 DataFrame 并保留共享行?
    如何基于公共列合并多个 DataFrame 并保留共享行?
    基于公共列合并多个数据帧您有多个具有公共列“日期”的数据帧,并且需要合并它们同时保留所有数据帧共有日期的行。递归函数方法可能很复杂并且容易出错。这是使用 pandas 强大的分组和合并功能的更简单的解决方案:import pandas as pd # Create a list of datafra...
    编程 发布于2024-11-16
  • 如何使用 MySQL 查找今天生日的用户?
    如何使用 MySQL 查找今天生日的用户?
    如何使用 MySQL 识别今天生日的用户使用 MySQL 确定今天是否是用户的生日涉及查找生日匹配的所有行今天的日期。这可以通过一个简单的 MySQL 查询来实现,该查询将存储为 UNIX 时间戳的生日与今天的日期进行比较。以下 SQL 查询将获取今天有生日的所有用户: FROM USERS ...
    编程 发布于2024-11-16
  • 为什么 PHP 中的特殊字符会显示为带问号的黑钻石?
    为什么 PHP 中的特殊字符会显示为带问号的黑钻石?
    PHP字符编码问题:带有问号的小黑钻石用户在使用PHP从数据库中检索数据时经常遇到一个特殊问题:特殊字符(例如引号)显示为带有问号 (�) 的黑色菱形。此问题是由于数据的编码与用于显示它的编码之间的差异引起的。要解决此问题,您可以实现多种方法:HTTP 标头: 添加 HTTP 标头,为浏览器指定正确...
    编程 发布于2024-11-16
  • Bootstrap 4 Beta 中的列偏移发生了什么?
    Bootstrap 4 Beta 中的列偏移发生了什么?
    Bootstrap 4 Beta:列偏移的删除和恢复Bootstrap 4 在其 Beta 1 版本中引入了重大更改柱子偏移了。然而,随着 Beta 2 的后续发布,这些变化已经逆转。从 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    编程 发布于2024-11-16
  • CURL 可以替代 file_get_contents 来获取外部链接吗?
    CURL 可以替代 file_get_contents 来获取外部链接吗?
    使用 CURL 获取外部链接(替代 file_get_contents)为了获取特定页面上的外部链接,通常使用 file_get_contents 函数。但是,当您使用的服务器不支持此功能时,CURL 可以作为一个可行的替代方案。要实现 CURL,您可以使用以下代码:function file_ge...
    编程 发布于2024-11-16
  • 大批
    大批
    方法是可以在对象上调用的 fns 数组是对象,因此它们在 JS 中也有方法。 slice(begin):将数组的一部分提取到新数组中,而不改变原始数组。 let arr = ['a','b','c','d','e']; // Usecase: Extract till index p...
    编程 发布于2024-11-16
  • Go的FileMode函数如何处理八进制和十进制权限转换?
    Go的FileMode函数如何处理八进制和十进制权限转换?
    Go 中 FileMode 函数的权限解析os.FileMode 函数在设置标志之前转换各种格式的权限。这些格式包括整数、八进制表示形式以及可能的其他形式。从整数转换为 os.FileMode 时,该函数不会显式辨别整数是用八进制还是十进制表示。十进制表示形式被解释为常规整数。数字的八进制表示形式通...
    编程 发布于2024-11-16
  • ## 如何在 Android 上从 FTP 服务器下载文件:哪个 Java 库最好?
    ## 如何在 Android 上从 FTP 服务器下载文件:哪个 Java 库最好?
    适用于 Android 的 FTP 库正在寻找一个可靠的 Java 库,以方便从 Android 设备上的 FTP 服务器下载和恢复文件?让我们深入研究一些潜在的解决方案。Apache Commons FTP考虑一下 Apache Commons FTP,它是一个广泛使用且备受推崇的 FTP 操作库...
    编程 发布于2024-11-16
  • 为什么 Java 的模运算符对于负数返回负结果?
    为什么 Java 的模运算符对于负数返回负结果?
    Java 中的负模结果在 Java 中执行负数模运算时,您可能会注意到结果与获得的结果不同在Python中。在 Java 中,int i = -1 % 2 得到 -1,而在 Python 中,它返回 1。理解模和余数理解这种差异的关键在于模和余数之间的区别。在 Python 中,% 运算符返回模数,...
    编程 发布于2024-11-16
  • 为什么 TCPDF 是 PHP 的最佳 PDF-API?
    为什么 TCPDF 是 PHP 的最佳 PDF-API?
    确定 PHP 的最佳 PDF-API在使用 PHP 生成 PDF 的领域中,存在多种选项,每种选项都有其独特的优点和缺点。其中,TCPDF 因其增强且维护良好的性质而脱颖而出,源于其作为 FPDF 后代的血统。为什么选择 TCPDF?作为一个基于 PHP 的 PDF 库,TCPDF 随着时间的推移不...
    编程 发布于2024-11-16
  • 如何在 SQL 中连接具有逗号分隔值字段的表?
    如何在 SQL 中连接具有逗号分隔值字段的表?
    使用逗号分隔值查询多个连接字段在 SQL 中,处理包含逗号分隔列表 (CSV) 的表时在他们的领域,有效地执行连接可能具有挑战性。本文探讨了一种特定场景,其中电影表中的类别列包含多个类别 ID,目标是在从类别表中获取相应类别名称时将其完全排除。下表说明了该场景:Table categories: -...
    编程 发布于2024-11-16
  • 为什么 Java 中不推荐使用 Thread.stop():安全问题和替代方案?
    为什么 Java 中不推荐使用 Thread.stop():安全问题和替代方案?
    Java 中的线程终止:为什么 Thread.stop() 被弃用?Java 中的 Thread.stop() 由于固有的原因而被弃用安全问题。使用 Thread.stop() 停止线程会突然解锁其持有的任何锁(监视器),可能会使对象处于不一致的状态并导致意外行为。这种行为可能是不可预测且难以检测的...
    编程 发布于2024-11-16
  • 以下是几个可能的标题,根据文章内容选择最合适的:

* How to fix \"invalid version: git ls-remote -q origin\" error when using go mod tidy with private GitHub repositories?
* Downloading private GitHub repositories with `go mo
    以下是几个可能的标题,根据文章内容选择最合适的: * How to fix \"invalid version: git ls-remote -q origin\" error when using go mod tidy with private GitHub repositories? * Downloading private GitHub repositories with `go mo
    go mod tidy遇阻不能下载 GitHub 私有仓库在尝试用 go mod tidy 下载 GitHub 私有仓库时,您可能会遇到以下错误:invalid version: git ls-remote -q origin in /tmp/gopath/pkg/mod/cache/vcs/ea2...
    编程 发布于2024-11-16

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3