提问人:Borja 提问时间:12/19/2020 更新时间:12/19/2020 访问量:16
使用 XPath 将文本打印到元素 - PHP
Print text up to an element with XPath - PHP
问:
您好,我有一个元素,我想保存/打印内容,直到秒 o 可能吗?<td>
<br
这是html:
<td>
<span class="HTML_ELM">Coniugazione di: </span>
<span class="style11">
<span class="HTML_ELM">moneo</span>
</span>, monĕs, monui, monitum, monēre<br> // **STOP HERE MY FRIENDS !**
<span class="HTML_ELM"> coniugazione: : </span>2 - transitivo - attiva<br>
<span class="HTML_ELM"> significato: </span>ammonire, <a href="Coniugazione_latino.asp?verbo=moneo&tradinv=avvertire&lang=IT_">avvertire</a>, <br> <br>(eng) = <a href="Coniugazione_latino.asp?verbo=moneo&tradinv=warn&lang=EN_">warn</a>, <a href="Coniugazione_latino.asp?verbo=moneo&tradinv=advise&lang=EN_">advise</a>, <a href="Coniugazione_latino.asp?verbo=moneo&tradinv=presage&lang=EN_">presage</a>, <br><br>(esp) = <a href="Coniugazione_latino.asp?verbo=moneo&tradinv=avisar&lang=ES_">avisar</a>, <<br>
</td>
我尝试使用:explode
$query_paradigma = '//span[contains(@class, "style11")][1]/parent::td';
$contenuto_paradigma = $xpath->query($query_paradigma);
$paradigma= explode("<br>",$contenuto_paradigma);
print_r($paradigma[0]." <br>");
print_r($paradigma[1]." <br>");
但是我有这个错误:explode() 期望参数 2 是字符串
我希望你能帮助我,对不起我的英语
答:
1赞
Nigel Ren
12/19/2020
#1
问题是当你运行时,这将给你一组DOM元素,而不是内容的实际HTML。query()
因此,将是一个匹配节点的列表,您只需要第一个匹配项(如果您想要更多,可以遍历它们)。然后导出此节点(节点)的 HTML(注意,这是文档的名称,因此请根据需要进行更改)。然后你可以从那里提取数据......$contenuto_paradigma
<td>
$dom->saveHTML()
$dom
$query_paradigma = '//span[contains(@class, "style11")][1]/parent::td';
$contenuto_paradigma = $xpath->query($query_paradigma);
$tdContent = $dom->saveHTML($contenuto_paradigma[0]);
$paradigma= explode("<br>",substr($tdContent, 4)););
(只是从头开始删除标签)。substr
<td>
评论
0赞
Borja
12/19/2020
我尝试了您的代码,在 $dom_td= new DOMDocument() 之前添加;(我在 $dom_td 中更改了变量 $dom 的名称),但我有错误:未捕获的 DOMException:错误的文档错误
0赞
Nigel Ren
12/19/2020
您需要使用用于创建 DOMXPath 对象的相同 DOM。
上一个:HTML 解析和 Dom 树构造
评论