【问题标题】:PHP regular expressions and XMLPHP 正则表达式和 XML
【发布时间】: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 非常挑剔。

标签: php regex


【解决方案1】:
<?php

$string = "This is a test id=abc> string";
$replace = preg_replace('/=([\w]+)/i', '="$1"', $string );

echo $replace ;
//This is a test id="abc"> string
?>

http://ideone.com/OurhHV

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 2013-04-05
    • 2021-09-20
    相关资源
    最近更新 更多