phpQuery:将所有出现的文本替换为另一个

时间:2014-05-24 13:46:36

标签: php phpquery

我正在尝试解析网站主页,将其转换为xml文件,以便在我的应用中用作api。

到目前为止,我已成功完成了这项工作。但是,解析后的文本包含&(&符号)字符,导致XML解析器失败。

我正在寻找一种不会在XML文件中使用CDATA或不输出CDATA的解决方案。

我想在每次出现时将&替换为and。我应该使用什么phpQuery方法?

这会导致浏览器出错,因为text()方法返回带有

的文本 其中有

&个字符。         

require('phpQuery/phpQuery.php');

 $all=phpQuery::newDocumentFileHTML('BPUT.htm', $charset = 'utf-8');

 $links = $all['a.myblue'];


echo '<notice>';

foreach ($links as $link) {

    echo '<text>';
    echo pq($link)->text();
    echo '</text>';


    echo '<url>';
    echo pq($link)->attr('href');
    echo '</url>';
}

echo '</notice>';

 ?>

我不想使用CDATA,因为CDATA标记在生成的XML中可见:

 <?php
header('Content-type: text/xml');

require('phpQuery/phpQuery.php');

 $all=phpQuery::newDocumentFileHTML('BPUT.htm', $charset = 'utf-8');

 $links = $all['a.myblue'];


echo '<notice>';

foreach ($links as $link) {

    echo '<text>';
    echo "<![CDATA[";
    echo pq($link)->text();
    echo "]]>";
    echo '</text>';


    echo '<url>';
    echo pq($link)->attr('href');
    echo '</url>';
}

echo '</notice>';

 ?>

争吵。

0 个答案:

没有答案