如何解析XML/HTML服务器的响应?
我第一次来。 我将这些行作为服务器的响应并将它们保存在文件中。他们看起来像XML,对吧?我的任务是读取这些td标签的内容并将它们放入其他结构化文件(Excel)中。问题是我不知道该怎么做。如何解析XML/HTML服务器的响应?
目前,我想我会去掉文件的第一行和最后一行,然后将它们解析为XML。但是你知道其他方法吗?谢谢。
<CallbackContent><![CDATA[
<table cellspacing="0" border="0" cellpadding="0" width="100%">
<tr class="rowcolor2">
<td align="left" style="padding:5px;">22/02/2010</td>
<td align="right" style="padding:5px;">510,02</td>
</tr>
</table>
]]></CallbackContent>
顺便说一句,我使用PHP。
使用XML解析器,如SimpleXML。它将允许您安全地提取CDATA。
然后,如果HTML符合XML(换句话说,就是XHTML),则可以使用SimpleXML从中提取数据。例如:
$xml='<CallbackContent><![CDATA[
<table cellspacing="0" border="0" cellpadding="0" width="100%">
<tr class="rowcolor2">
<td align="left" style="padding:5px;">22/02/2010</td>
<td align="right" style="padding:5px;">510,02</td>
</tr>
</table>
]]></CallbackContent>';
$CallbackContent = simplexml_load_string($xml);
$html = (string) $CallbackContent;
// if XHTML
$table = simplexml_load_string($html);
// otherwise, use
$dom = new DOMDocument;
$dom->loadHTML($html);
$table = simplexml_import_dom($dom)->body->table;
foreach ($table->tr as $tr)
{
echo 'tr class=', $tr['class'], "\n";
foreach ($tr->td as $td)
{
echo 'td align=', $td['align'], ' - value: ', (string) $td, "\n";
}
}
您不能使用XML解析器读取表格,因为它是作为CDATA块推出的,这等同于字符串文字。
谢谢,这就是为什么我告诉我会去掉第一行和最后一行。这样做可以吗? – hoangquan 2010-02-24 11:57:57
我不知道,因为我没有看到你的整个文档,也看不到它是如何使用的。您希望删除的位可能具有使用或上下文,否则我从您提供的示例之外没有意识到。 – 2010-02-24 12:03:40
整个文档具有相同的结构,它可能有几百个
首先,使用XML解析器读取整个事物,以便可以取出CDATA节的内容。然后采取并通过一个HTML parser。
谢谢。你能告诉我如何从CDATA部分提取内容吗?它的结构很奇怪。 – hoangquan 2010-02-24 12:05:23
你没有。你把它提供给HTML解析器。 – 2010-02-24 12:09:50
- 1. DNS服务器未响应怎么办,如何解决?
- 2. Nginx做为代理服务器如何响应后端服务器的status code
- 3. dns服务器未响应解决
- 4. 从服务器接收到响应报文到解析页面
- 5. EasyDemo*Http(服务器)响应数据解析
- 6. 安装MySQL服务器最后一步时未响应如何解决
- 7. 如何保护无服务器应用?
- 8. Tomcat服务器响应特别慢(服务器假死)的解决办法
- 9. Web服务器,应用服务器,Http服务器的理解
- 10. DNS服务解析,如何用bind构建主从架构的DNS服务器。
- 11. ajax获取服务器响应信息
- 12. 服务器响应状态码
- 13. fiddler抓包修改服务器响应
- 14. 代理服务器没有响应
- 15. postman访问服务器没响应
- 16. elasticsearch的服务器响应异常及解决策略(转)
- 17. win10任务管理器无响应_当任务管理器失败时,如何终止“无响应”程序
- 18. web服务器和应用服务器的区别与分析
- 19. 关于SpringMVC 中服务器端如何响应 AJAX 请求(即controller是如何返回json的)
- 20. 服务器如何选择
- 21. 服务器如何上架
- 22. 服务器***如何防护?
- 23. 如何建域服务器
- 24. 如何登陆服务器
- 25. 如何购买服务器
- 26. Linux服务器 - http服务器需求分析-客户端请求 | 服务端响应
- 27. AD域内DNS服务器如何解析公网域名
- 28. 阿里云服务器如何解析添加二级域名
首先,使用XML解析器读取整个事物,以便可以取出CDATA节的内容。然后采取并通过一个HTML parser。
谢谢。你能告诉我如何从CDATA部分提取内容吗?它的结构很奇怪。 – hoangquan 2010-02-24 12:05:23
你没有。你把它提供给HTML解析器。 – 2010-02-24 12:09:50
你已经遍历了HTML DOM。但该人需要作为excel文件。因此附加为逗号分隔值。 使用头附件配置抛出为excel。 – coder 2010-02-24 12:36:01
@Josh戴维斯:它完美的作品,非常感谢,你救了我的一天。看起来我没有学习关于XML的CDATA定义。 @coder:没关系,我只是想提取标签的内容。 – hoangquan 2010-02-24 12:50:23