如何使用 SimpleXML 解析 XML 并忽略错误

2023-12-04

我的 .xml 文档经常包含错误。无论如何,我想解析我的文档直至出现错误或尝试自动修复错误。那可能吗?

我已经尝试过这个,但它不起作用

  $xml = simplexml_load_file($url, "SimpleXMLElement", array(LIBXML_NOERROR, LIBXML_ERR_NONE));

    if (!$xml) {
        echo "Failed loading XML\n";
        foreach(libxml_get_errors() as $error) {
            echo "\t", $error->message;
        }
    }

来自 PHP 文档simplexml_load_file选项应该是 int 而不是数组

Replace

$xml = simplexml_load_file($url, "SimpleXMLElement", array(LIBXML_NOERROR, LIBXML_ERR_NONE));
                                                       ^------- You are using array

With

$xml = simplexml_load_file($url, "SimpleXMLElement", LIBXML_NOERROR |  LIBXML_ERR_NONE);

您也可以使用以下命令修复 xml,而不是抑制此错误Tidy包裹。

Example bad.xml

<Family>
    <name>Hankre</name>
    <adults>2</adults>
    <kids > 16 </kids>
    <food>
        <tag>Nice </tag>
        <tag>Food </tag>
        <tag />

Fix XML

$config = array(
    'indent' => true,
    'clean' => true,
    'input-xml'  => true,
    'output-xml' => true,
    'wrap'       => false
    );

$tidy = new Tidy();
$xml = $tidy->repairfile($badXML, $config);
echo $xml;

Output

<Family>
    <name>Hankre</name>
    <adults>2</adults>
    <kids>16</kids>
    <food>
        <tag>Nice</tag>
        <tag>Food</tag>
        <tag />
    </food>
</Family>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 SimpleXML 解析 XML 并忽略错误 的相关文章

  • 未捕获的 ValueError:mysqli_stmt::execute():参数 #1 ($params) 必须是列表数组

    我试图通过这两个查询在我的数据库中插入准备好的语句多个值 这两个查询都发生故障 返回 未捕获的错误 调用未定义的方法 mysqli stmt bindValue 对于第一个代码或 未捕获的 ValueError mysqli stmt ex
  • 返回变量在 PHP 中不起作用(即没有返回值!)

    我更喜欢使用 Python 语言进行编程 但必须使用 PHP 来处理特定的网站应用程序项目 在 PHP 中 我试图将函数中的值 返回 到主程序环境 用于后续计算 但无论我尝试什么 函数中计算的值都不会返回该值 而是从函数中回显 工作正常 在
  • 计算两个数字之间的差异

    我想计算两个给定数字之间的差异 例如 1 5 或 24 35 我必须将数组中的数字分开并写出它们之间的差异 如下所示 1 2 3 4 5 或 24 25 26 27 28 29 30 31 32 33 34 35 是否有任何 php 函数可
  • 如何为 Lumen 的封闭路线指定路线名称?

    您好 我有以下流明路线 router gt get end function Illuminate Http Request request use router controller router gt app gt make App H
  • 如何使用注释从类的属性值派生 xml 元素名称?

    我有 具有 id 值和名称的属性 我可以使用 XmlElement XmlArray C 注释用一个类来表示所有这些吗 我想从类属性派生 xml 元素名称name 我的课程看起来像 public class Property public
  • 基于 PHP 的 CSV 编辑器? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道用 PHP 编写的在线 CSV 编辑器允许用户打开 编辑和保存给定的 CSV 文件 我能找到的只
  • 在 symfony2 中为特定控制器设置 max_execution_time

    Using ini set 我可以扩展最大执行时间一个脚本的 在Symfony2 我可以添加ini set to web app php and web app dev php将增加的执行时间应用于所有控制器 但在这种情况下 我只想扩展最大
  • 这些加密算法有什么区别?

    两者有什么区别MCRYPT RIJNDAEL 128 MCRYPT RIJNDAEL 256 MCRYPT BLOWFISH等等 哪一种最适合网络数据传输 Rijandel 是 AES 的另一个名称 AES 是当前的 一个好的标准 算法 数
  • xdebug_start_trace 行为异常

    我正在尝试进一步减少脚本内存使用量 我试图让我的脚本使用 xdebug 生成输出来分析内存使用情况 这是一个基于 CLI 的脚本 有 shebang usr local bin php q 我向它传递一个参数并检查它 argc gt 1 i
  • Laravel 5 与 SAML 2 和现有 IDP 集成

    我使用 Laravel 5 我正在尝试将 SAML 2 0 与其集成 我找到了这个包 https github com aacotroneo laravel saml2 https github com aacotroneo laravel
  • 适用于 Windows 的 PHP 支持的 GUI 应用程序

    我知道 PHP 是一种解释性语言 对于基于 Web 的事物来说 不是为在实际操作系统上运行 GUI 应用程序而设计的 但是有没有办法呢 基本上 是否有一个框架 系统允许我创建 本机 基本上是二进制文件 exe 看起来像带有本机控件和所有内容
  • 从提交的表单中转义字符串中的字符

    每次发布帖子时 我都会得到转义字符 gt gt gt 我有一个多步骤表单 它将数据从一种表单传输到另一种表单 我将这些值与准备好的语句一起保存在数据库中 数据库中的值当前看起来像Paul s House 用户应该可以在字符串中使用单引号和双
  • 使用 PDO 在 SQLite 中检索单个(且唯一)行的最简单方法

    我有这个 PDO stmt db gt prepare SELECT FROM channels WHERE id id stmt gt bindValue id id SQLITE3 INTEGER result stmt gt exec
  • 需要 mysqli_fetch_all 的替代方案

    我有一个 php mysqli 代码 可以找到一个我的本地服务器 但是在我的服务器上使用它时 我得到了一个 Fatal error Call to undefined function mysqli fetch all in home3 t
  • URL 重写帮助

    RewriteEngine on RewriteCond REQUEST URI index php RewriteRule index php q 1 L 这应该将任何 url 重写为 index php q url 并且它可以工作 反正
  • 使用 DOM 获取 div 的内容(包括子标签)

    我正在使用 DOM 来获取 div 标签的内容 但内部 html 部分未显示 功能是 dom new DOMDocument libxml use internal errors true dom gt loadHTMLFile url l
  • 将秒转换为天、小时、分钟和秒

    我想转换一个变量 uptime这是秒 分为天 小时 分钟和秒 Example uptime 1640467 结果应该是 18 days 23 hours 41 minutes 这可以通过以下方式实现DateTime http php net
  • 从多个选择列表中插入数据到mysql数据库(html形式)

    我制作了一个表格 其中有商店的 ID
  • php向多个收件人发送邮件

    我可以通过在邮件程序中定义 id 来将电子邮件发送到一个电子邮件 id 但是当用户在表单中键入 消息和电子邮件 id 时 我无法理解如何发送到多个收件人 例如 我正在显示一个带有两个文本区域的表单 一个用于电子邮件 ID 一个用于自定义消息
  • PHP - 查找和比较日期

    你好 我有 foreach 我可以在其中获取数据库中的事件数据 我使用数据库中的日期名称 例如 event date 我需要在一个 div 中比较具有相同日期和输出的操作 例如我有这个事件 活动一 9 月 13 日 活动二 9 月 1 日

随机推荐

  • Azure AD B2C - 使用电子邮件或移动设备注册/登录

    我正在使用 Azure AD B2C 我们的产品团队向我们提出了一项偏好 要求 允许用户使用电子邮件地址或手机号码作为用户 ID 进行注册 登录 目前 内置流程仅允许电子邮件或用户名作为用户 ID 有有力的证据建议我们创建一个自定义策略以允
  • PushState 更改 - 相当于 Chrome 扩展 onHistoryStateUpdated

    我正在将 Chrome 扩展程序移植到 Firefox 扩展程序 由于其运行的网站的性质 我需要监视pushState Chrome 扩展有一个方便的方法来处理这个问题 chrome webNavigation onHistoryState
  • 如何使用 Pandas 转置将数据从一个数据帧添加到另一个数据帧?

    客观的 使用转置将一个数据帧填充到另一个数据帧 df pd DataFrame Attributes love family tech df T 产生以下输出 0 1 2 Attributes love family tech 其次 我有另
  • 在 iOS 6 中使用 SLRequest 与 Facebook

    我目前正在尝试使用 SLRequest 在 facebook 上发布状态 这是我的代码 ACAccountStore accountStore ACAccountStore alloc init ACAccountType accountT
  • 保存 html 画布图像

    我知道这个问题可能已经有了答案 但我还没有找到它 而且我的项目有一个截止日期 所以我制作了一个 html5 画布 我希望能够用一个 或多个 按钮做两件事 我希望用户能够通过单击 保存 按钮来保存他刚刚完成的操作 理想情况下我希望下载图像 而
  • C# 相当于 C 的 fread 文件 i/o

    谁能告诉我如何在 C NET 版本 2 中以直接方式将字节数组放入结构中 就像熟悉的fread正如在 C 中所发现的 到目前为止 我在读取字节流和自动填充结构方面还没有取得太大成功 我见过一些实现 其中托管代码中存在指针骗局 方法是使用un
  • CSS 和 Javascript 不渲染 404 错误 spring-boot

    这是我正在使用的路径的片段
  • 如何在 Excel 操作窗格中使用 WPF 控件?

    有几个资源解释了如何添加WinForms控件到 Excel 看这两个 http msdn microsoft com en us library vstudio e3zbk0hz 28v vs 100 29 aspx http www cl
  • 在 Win7 中使用 MinGW 中的 pthreads

    2015年1月20日 我在Win7中使用MinGW 尝试使用MinGW和Pthreads编译我的源代码 MinGW已经支持POSIX线程 在 MinGW安装管理器 中 我们可以安装pthreads开发包和pthreads lib 但是当我编
  • 在Python中,命令行参数无需导入?

    在Python中 是否可以在不导入sys 或任何其他模块 的情况下获取命令行参数 是的 如果您使用的是 Linux 如果您知道进程 ID 则可以读取它 proc pid cmdline文件 其中包含以 null 分隔的命令行参数列表 PRO
  • VBA Excel 变量对多个键/顺序进行排序

    如何同时对多个列 键 订单 进行排序 当我运行下面的代码时 它会在执行每一行时对数据重新排序 而不是在排序中对多列进行排序 将 密钥 或 订单 编号从 1 更改为 2 等没有帮助 谢谢 wsLast Row Cells Rows Count
  • javascript数组的总和返回所有数字的字符串连接[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 目前不接受答案 我有一个由 ajax 获取的 php json encode 对象 我想做的就是对这个数组求和 这是我到目前为止所做的 var json parseJSON data var
  • 如何在Tensorflow中设置分层学习率?

    我想知道是否有一种方法可以像 Caffe 中那样对不同层使用不同的学习率 我正在尝试修改预先训练的模型并将其用于其他任务 我想要的是加快新添加层的训练速度 并将训练后的层保持在较低的学习率 以防止它们被扭曲 例如 我有一个 5 卷积层的预训
  • 当服务打开时,如何强制应用程序选择退出省电模式?

    预期的行为是应用程序在处于开启状态时将始终运行 当应用程序一段时间不活动时 某些手机会将应用程序置于后台模式 我希望应用程序始终运行 即使处于待机模式 待机模式意味着当我们按下主页按钮时 应用程序将进入后台 并且它将运行一段时间 我找到了以
  • 配置按键重复延迟以检测按键是否被按下

    我正在用 C 语言编写一个程序 它使用 ncurses 来检查是否按下了某个键 问题是按键重复有延迟 例如 如果我在终端中按住 a 键 则在重复输入 a 之前会有短暂的延迟 我希望能够知道它是否是从实际按下的位置按下的 在终端中如何暂时将此
  • opengles 在 iPhone 中显示人脸

    我需要将人类 2D 脸部制作为 3D 脸部 我用了这个链接加载 obj 文件并映射纹理 此示例仅适用于立方体和金字塔 我加载了人脸 obj 文件 This loads the obj file and can get the human f
  • Spring 对每个未经授权的 HTTP POST 返回 HTTP 405

    Spring 似乎没有正确路由 授权 HTTP POST 请求 当我发送 HTTP POST 请求时 我总是收到 405 Method Not allowed 响应 并在日志文件中显示 org springframework web ser
  • Jquery 数据表排序不适用于日期列?

    我有一个 jquery 数据表 其中日期列格式为 2018 年 2 月 16 日 但是当它排序时 它没有正确排序 我已经使用了提到的所有与日期相关的列类型Here 但似乎没有任何作用 我该如何解决 这是代码 div class panel
  • 列表追加到 pandas 单元格中

    我有一个数据框 其中包含列中的列表项 例子 df column1 column2 column3 1 c d 2 x 3 foo car 所以我想将另一个项目附加到第3列中 结果应该是这样的 column1 column2 column3
  • 如何使用 SimpleXML 解析 XML 并忽略错误

    我的 xml 文档经常包含错误 无论如何 我想解析我的文档直至出现错误或尝试自动修复错误 那可能吗 我已经尝试过这个 但它不起作用 xml simplexml load file url SimpleXMLElement array LIB