【发布时间】:2014-05-28 14:18:02
【问题描述】:
我有一个包含 17000 条格式不正确的记录的 XML 数据库。 XML 的问题在于属性不在引号 ("") 中。
我的脚本只收集一条记录。
问题是将属性值放在引号内。
所以如果我有这样的字符串:
$str = "This is a test id=abc> string";
$str1 = '="';
$str2 = str_replace("=", $str1, $str);
我的问题是获取引号内的属性值 (id="abc">)。我尝试使用正则表达式,但是没有用。
【问题讨论】:
-
你能展示你试过的正则表达式吗?也许我们可以解决它?
-
当您说“格式不正确”时,您的意思是它根本无法被解释为有效的 XML。我知道这就是声明的意思,但我只是想检查一下你的意思。如果是这样,那听起来就像是一无所有。可能有一个正则表达式可以解决您当前的问题,但最小的更改可能会再次破坏它。最好的办法是返回 XML 的源代码并让生成器修复它。
-
我推荐使用
$dom_html = new DomDocument(); $dom_html->loadHTML($html_source);,这样您就可以轻松获取属性,或者如果您愿意,您可以将 HTML 保存为标准 HTML 字符串 -
@javad:没用。 PHP DOM 对格式错误的 HTML 非常挑剔。