实际我有一个问题。我想在XML文件中附加一些CDATA格式的字符串。
<url><![CDATA[http://www.kinguin.net/category/1356/l-a-noire-steam-key/?nosalesbooster=1&country_store=1¤cy=EUR]]</url>
使用以下代码修改字符串后:
$doc = simplexml_import_dom($dom);
$items = $doc->xpath('//url');
foreach ($items as $item) {
$node = dom_import_simplexml($item);
$node->textContent .= 'appendIT';
}
我明白了:
<url>http://www.kinguin.net/category/1356/l-a-noire-steam-key/?nosalesbooster=1&country_store=1&currency=EURappendIT]]</url>
但我怎么能说&#34;把它放回CDATA格式&#34;?
另外。我想将此网址发送到我的数据库。但没有&
字符。那么如何在没有&
的情况下获取网址?
问候,谢谢!
答案 0 :(得分:0)
由于XML中的CDATA
代表&#34;字符数据&#34;,您可以将其视为字符串而不进行解析。 CDATA以]]
结尾(假设不是嵌套的CDATA),所以
$xmlstrIn = '<url><![CDATA[http://www.kinguin.net/category/1356/l-a-noire-steam-key/?nosalesbooster=1&country_store=1¤cy=EUR]]</url>';
$xmlstrOut = preg_replace('|(\]\])|', 'appendIT$1', $xmlstrIn);
并将$xmlstrOut
发送到您的数据库。
希望这可以解决问题(除非您正在研究SimpleXML扩展或其他东西)。
此致
尼克