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