3

这是我要解析的html部分:

<center>
<table border="0" cellpadding="0" cellspacing="0"  >
<td>
Some text
<br>
<font color=brown>label0</font>Value0
<br>
<font color=brown>Label1</font>Value1.<br>
Some text
<br>

<font color=brown>Label2</font>Value2<br>
</td>
</table>

</center>

我想得到 Value0 和 Value1。

如果我使用这个:

$index=$element->nodeValue;

其中元素是对.../font我得到Label0,1,2的查询。但我想要价值。怎么做?如有必要,我还可以提供更多代码。

4

4 回答 4

2

尝试一下:

$index=$element->nextSibling->nodeValue;

获取字体节点之后的节点的值。

于 2012-12-19T11:14:53.903 回答
1
<center>
<table border="0" cellpadding="0" cellspacing="0"  >
<td>
Some text
<br>
<font color=brown>label0</font><span>Value0</span>
<br>
<font color=brown>Label1</font><span>Value1.</span><br>
Some text
<br>

<font color=brown>Label2</font>Value2<br>
</td>
</table>
</center>

尝试像上面一样放置跨度,而不是查询跨度的字体查询...希望它会有所帮助..

于 2012-12-19T11:18:14.730 回答
0

试试这个:

$str = '<center>
<table border="0" cellpadding="0" cellspacing="0"  >
<td>
Some text
<br>
<font color=brown>label0</font>Value0
<br>
<font color=brown>Label1</font>Value1.<br>
Some text
<br>

<font color=brown>Label2</font>Value2<br>
</td>
</table>
</center>';

$dom = new DOMDocument();
$dom->loadHTML($str);
$dom->preserveWhiteSpace = false;
$dom->validateOnParse = true;

$xpath = new DOMXPath($dom);
$nodes = $xpath->query("//font");
foreach ($nodes as $node) {
    echo trim( $node->nextSibling->nodeValue ) . "\n";
}

希望这可以帮助。

于 2012-12-19T11:16:33.060 回答
-1
$dom = new DOMDocument();
$xpath = new DOMXPath($dom);    
$xpath->loadHTML('link/to/html');
$fonts = $xpath->query('font');
foreach ($fonts as $font){
    echo $font->nextSibling->nodeValue;
}

上面的脚本将回显<font>.

但是拜托,你为什么不使用CSS

于 2012-12-19T11:14:27.350 回答