gpt4 book ai didi

php - 让 PHP 确认 XML 错误

转载 作者:可可西里 更新时间:2023-11-01 12:21:19 27 4
gpt4 key购买 nike

我对发送给我的 XML 提要感到有些悲伤。我知道它是无效的,但是发送程序的开发周期是这样的,不值得等待他们能够更正错误。所以我正在寻找解决方法,让 PHP 让我读取 XML 并合并/删除无效的属性条目,同时保留所有其他条目。

错误是我在 XML 节点上有重复的属性。我一直在使用 simpleXML 来读取文件并将它们处理成有用的值,但是这一行完全破坏了系统。有问题的 XML 看起来像这样

<dCategory dec="1102" dup="45" dup="4576" loc="274" mov="31493" prf="23469" unq="240031" xxx="7861" />

我真正想要的是在 XML 阅读器上与 C# 的 .MoveToNextAttribute() 等效的 PHP。我似乎找不到任何在出现重复属性时不会爆炸的东西。

有人帮忙解决这个问题吗?

链接到解决 XML 本身中字符错误的答案。例如& 不显示为 &。这里的问题是 XML 的结构被破坏了,而不是内容。该线程中的答案返回

 parser error : Attribute attr1 redefined

当与 XML 一起出现时

<open-1 attr1="atr1" attr1="atr1">Text</open-1>

这就是我要解析的内容。

最佳答案

您可以使用 tidy 来清理您的输入:

<?php

$buffer = '<?xml version="1.0" encoding="UTF-8"?><open-1 attr1="atr1" attr1="atr1">Text</open-1>';

$config = [
'indent' => true,
'output-xml' => true,
'input-xml' => true,
];

$tidy = tidy_parse_string($buffer, $config, 'UTF8');
$tidy->cleanRepair();
echo $tidy;

将输出:

 <?xml version="1.0" encoding="utf-8"?>
<open-1 attr1="atr1">Text</open-1>

关于php - 让 PHP 确认 XML 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34880758/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com