在curl请求中,我有一个html表,其结构如下所示。现在,我只想提取包含带有空类的span元素的表行,而不是包含class=“subcomponent”的表行。我成功地尝试了Xpath来查找带有空类的元素,但是如何获取整个,甚至是包含Version和partnumber的特定
节点。提前谢了。
<table>
...
<tbody>
<tr>
<td></td>
<td></td>
<td>
<span class="">Product</span>
</td>
<td>Version</td>
<td>Partnumber</td>
</tr>
<tr>
<td></td>
<td></td>
<td>
<span class="subcomponent">Component</span>
</td>
<td>Version</td>
<td>Partnumber</td>
</tr>
</tbody>
我的PHP代码
$doc = new DOMdocument();
libxml_use_internal_errors(true);
$doc->loadHTML($page);
$doc->saveHTML();
$xpath = new DOMXpath($doc);
$query ='//span[@class=""]';
$entries = $xpath->query($query);
foreach ($entries as $entry) {
echo $entry->C14N();
}
要使用SimpleXML访问表行本身,可以使用以下方法:
$sxml = simplexml_load_string('<table>...</table>');
$rows = $sxml->xpath('//tr[td/span[@class=""]]');
foreach ($rows as $row) {
echo "Version: ", $row->td[3], ", Partnumber: ", $row->td[4];
}
XPath的工作方式是选择所有具有子标记的
,该标记本身具有带有空白类的子
。
在这个循环中,您需要通过数字访问每行的子单元格,因为您的示例没有指示它们以任何其他方式标记。我假设表结构不会经常改变,所以应该没问题。
$doc = new DOMdocument;
libxml_use_internal_errors(true);
$doc->loadHTML($page);
$xpath = new DOMXpath($doc);
$rows = $xpath->query('//tr[td/span[@class=""]]');
foreach ($rows as $row) {
$cells = $row->getElementsByTagName('td');
$version = $cells->item(3)->nodeValue;
$partNumber = $cells->item(4)->nodeValue;
echo "Version: {$version}, Part Number: {$partNumber}", PHP_EOL;
}
我必须创建一个函数,它接受两个参数,一个选择器和一个字符串,它将把选定元素的文本内容中的每个单词放到一个新的“span”元素中。每个新的“span”元素必须有一个唯一的ID,由前缀和一个连续整数(如par0、par1等)组合而成。该函数还需要处理嵌套的子元素... 任何帮助创建这将是高度赞赏的。谢谢你...
span元素也是一个没有语义的元素,类似于 div 元素。不过,span 是行内元素,它只能包围字词或短语,而 div 元素适合包含块级内容。 如果想为一小块内容定义 class、id、dir、lang 等属性,或定义特殊的显示风格,或定义Javascript行为,而又没有相应的HTML语义元素时,就可以使用 span元素。 如,以下段落中,通过三个 span元素,定义了三小块内容,并为它们分别应
我正在尝试通过检查网页并识别我要提取的内容的XPath来刮取一些web元素。对于某些元素,我得到了预期的结果,而对于其他元素,我没有得到预期的结果。请参阅下面的可复制示例: 上载我要分析的页面: 然后,我使用XPath语言标识想要查看的元素的路径: 为了提取我希望的值,我现在在文章列表中查找元素time和span。最终的结果是一个时间表列表,但也是一个空的阅读时间列表。我尝试使用不同的版本而不是,
请帮助我,我正在尝试选择一个图片,这是一个链接(一个网站上的培训师) 这是我的代码:
我需要从以下span元素中检索文本,而不需要将其拆分为文本部分。 我想检索一个没有破损的文本块。我正在使用这个xpath测试器http://www.freeformatter.com/xpath-tester.html