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

phpQuery:用另一个替换所有出现的文本,php,phpquery,Php,Phpquery,我正在尝试解析一个网站主页,将其转换为xml文件,用作我的应用程序中的api 到目前为止,我已经成功地做到了这一点。但是,解析后的文本包含导致XML解析器失败的&(符号)字符 我正在寻找一种不使用CDATA或不在XML文件中输出CDATA的解决方案 每次出现时,我都想用和替换&。我应该使用什么PHP查询方法 这会在浏览器中导致错误,因为text()方法返回带有 &字符。 require('phpQuery/phpQuery.php'); $all=phpQuery::newDocumentF

我正在尝试解析一个网站主页,将其转换为xml文件,用作我的应用程序中的api

到目前为止,我已经成功地做到了这一点。但是,解析后的文本包含导致XML解析器失败的
&
(符号)字符

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

每次出现时,我都想用
替换
&
。我应该使用什么PHP查询方法

这会在浏览器中导致错误,因为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>';

 ?>
require('phpQuery/phpQuery.php');
$all=phpQuery::newDocumentFileHTML('BPUT.htm',$charset='utf-8');
$links=$all['a.myblue'];
回声';
foreach($links作为$link){
回声';
echo pq($link)->text();
回声';
回声';
echo pq($link)->attr('href');
回声';
}
回声';
?>
我不想使用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>';

 ?>


颠簸着寻找答案。

嗨,欢迎来到StackOverflow。如果你能展示你到目前为止所做的尝试,准确解释你陷入困境的原因,并提供一个其他人可以用来测试建议的简明示例,你可能会在这里得到更好的回答。否则,我会觉得我们只是被要求为你做所有艰苦的工作。我理解。我解析了一个网站以获取所有链接,并使用phpQuery将其转换为xml。但是文本在一个位置有一个符号和字符,这会导致在浏览器中打开xml页面时失败。因此,我想处理解析后的HTML以替换amp字符,这样在转换为XML时不会导致错误。您可以编辑问题以显示您到目前为止的一些代码,以及导致问题的HTML示例吗?我已经提供了代码。请看一看。text()的返回是否包含任何xml,或者只是文本,其中碰巧也包含一个apersand(&)?