0

我有一个从另一个网站导出的 XML,其中包含CDATA但是CDATA当引用回该网站时,它实际上是一个 URL 链接。我可以将其解析CDataPHP,但它会显示为文本。有没有办法可以将它链接CData回 URL 所在的网站?还是我需要将 URL 放在CData要解析的位置?

---来自其他网站---例如 www.otherwebsite.com

例如来自 XML 的节点

<SongTitle><![CDATA[This is a song link at www.otherwebsite.com]]></SongTitle>

非常感谢。

4

1 回答 1

0

将文件加载到字符串中后尝试 preg_match_all ..

$string=  '<![CDATA[This is a song link at www.otherwebsite.com]]>'; // string of data or your xml file...

preg_match_all('/<!\[(CDATA)\[\s*(.*?)\s*\]\]>/',$string,$out);

$current_link = $out[2][0]; // print_r($_out); to see what is in this new array...
$current_link = str_replace("This is a song link at ","",$current_link); // now remove clutter
echo $current_link;

如果您想处理多次出现的 CData....

$var =  ' sdf sdf sdf<![CDATA[This is a song link at www.awesome.com]]> sdf sdf sd<![CDATA[This is a song link at www.google.com]]><![CDATA[This is a song link at www.amazon.com]]>';

preg_match_all('/<!\[(CDATA)\[\s*(.*?)\s*\]\]>/',$var,$out);
$array_of_links = $out[2];

foreach($array_of_links as $link){
    $current_link = str_replace("This is a song link at ","",$link);
    echo $current_link;
    echo "<br />";
}
于 2012-11-02T08:43:05.600 回答