我有一个问题。我想用php函数simplexml_load_string读取错误的xml格式,但我得到空值,因为格式是worng。部分xml:
<column name="price"><![CDATA[184.95]]></column>
<column name="category"><![CDATA[Dames]]></column>
<column name="subcategory"><![CDATA[Schoenen]]></column>
<column name="stock"><![CDATA[1]]></column>
我需要将其替换为:
<price><![CDATA[184.95]]></price>
<category><![CDATA[Dames]]></category>
<subcategory><![CDATA[Schoenen]]></subcategory>
<stock><![CDATA[1]]></stock>
正确阅读xml Feed。例如,可以用preg_match
替换它吗?如何?
答案 0 :(得分:1)
怎么样:
$str = preg_replace('#<column name="([^"]+)">(.+?)</column>#', '<$1>$2</$1>', $str);
答案 1 :(得分:0)
下面会这样做,但我认为你可以用preg_replace
来做,请看这个链接:php preg_replace matches
preg_match_all('/<column name=\"([a-z]+)\">(.*)<\/column>/', $string, $matches);
$string = '';
foreach( $matches[1] as $key => $name )
{
$string .= "<{$name}>{$matches[2][$key]}</{$name}>\n";
}