我正在尝试从PHP变量中的HTML代码中提取数据。
HTML如下:
<tr class="tr1">
<td align="right">
1.
</td>
<td align="left">
<input type="hidden" name="now[8116632]" value="98" />
<input type="hidden" name="add[8116632]" value="39" />
<input type="hidden" name="sec_value[8116632]" value="45720000" />
<div id="uid8116632"></div>
</td>
<td align="left">
<a href="playerInfo.phtml?pid=8116632" target="_blank"
onclick="return(openSmallWindow('playerInfo.phtml?pid=8116632',
c41c569a1b9c46c4cbc4bc58f37cb05f'))">kana</a>
</td>
<td align="right">
98
</td>
<td align="right">
45.720.000
</td>
</tr>
<tr class="tr2">
<td align="right">
2.
</td>
<td align="left">
<input type="hidden" name="now[8121292]" value="90" />
<input type="hidden" name="add[8121292]" value="45" />
<input type="hidden" name="sec_value[8121292]" value="36500000" />
<div id="uid8121292"></div>
</td>
<td align="left">
<a href="playerInfo.phtml?pid=8121292" target="_blank"
onclick="return(openSmallWindow('playerInfo.phtml?pid=8121292',
'c41c569a1b9c46c4cbc4bc58f37cb05f'))">Xoán Manuel Pérez Chaves</a>
</td>
<td align="right">
90
</td>
<td align="right">
36.500.000
</td>
</tr>
在这段代码中,我想提取:
<td align="right">1.</td>
这个数字为$position
<input type="hidden" name="now[8116632]" value="98" />
attributte名称中的方形bracks之间的idnumber为$ id,值为$ value
<input type="hidden" name="sec_value[8121292]" value="36500000" />
此值为$price
到目前为止我的PHP代码是这样的:
$DOM = new DOMDocument;
$DOM->loadHTML($result2);
$xpath = new DomXpath($DOM);
$div = $xpath->query('//*[@class="tr1"]');
现在我怎样才能得到我之前告诉过你们的变量? $position,$id,$value and $price
提前谢谢
答案 0 :(得分:2)
对于元素文本,请使用
之类的内容.../td[@align='right']/text()
对于属性值,请使用类似
的内容.../td[@align='left']/input[1]/@value
并且为了解析括号,你将不得不使用子串函数,这将变得混乱。 substring-before和substring-after可能就是你要找的东西。请将其作为参考:xpath: string manipulation
答案 1 :(得分:1)
我宁愿使用隐藏类型的更多输入,并给它们适当的名称,如:
<tr class="tr1">
<td align="right">1.</td>
<input type="hidden" name="position" value="1" />
<input type="hidden" name="id" value="765434" />
<input type="hidden" name="value" value="89898989" />
<input type="hidden" name="price" value="100" />
<td>Some description</td>
</tr>
维护这样的代码要容易得多,并且在访问php中的变量时也没有问题。 对不起,如果这是你要求的,但对我来说这是合理的解决方案(我可能不知道所有的事实)。
如果您无法更改此HTML,我建议您检查SimpleHTMLDom库而不是xpath这里有一些信息: