我第一次来这里。 我将这些行作为服务器的响应并将其保存在文件中。它们看起来像XML,对吗?我的任务是阅读那些td标签的内容并将它们放入其他结构化文件(Excel)中。问题是我不知道该怎么做。
目前,我想我将剥离文件的第一行和最后一行,然后将它们解析为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。
答案 0 :(得分:1)
使用SimpleXML之类的XML解析器。它将允许您安全地提取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";
}
}
答案 1 :(得分:0)
您无法使用XML解析器读取该表,因为它是作为CDATA块推出的,这会阻塞字符串文字。
答案 2 :(得分:0)
首先,使用XML解析器阅读整个内容,以便您可以提取CDATA部分的内容。然后将其填入HTML parser。