2012-05-26 69 views
-1

我进口一些HTML成一个DOM文档ANS使用XPath提取HTML部分我很感兴趣,请看下图:DOM的XPath HTML提取

$ DOM =新的DOMDocument()。
@ $ dom-> loadHTML('$ myHtmlFileHere');
$ xpath_dom_doc = new DomXPath($ dom);
$ dom_object = $ dom_document-> query('myPathHere');

这里下面的HTML结构 “返回”:

<div>GROUP A</div> 
<span>aaa</span> 
<span>zzz awesome</span> 
<span>eee</span> 

<div>GROUP B</div> 
<span>fff</span> 

<div>GROUP C</div> 
<span>zzz</span> 
<span>uuu</span> 
<span>iii</span> 
<span>rrr</span> 

正如你看到我的类别(A组,B组和C组)。在每个类别下面的跨度中,我都有关于类别的信息。我想要的是发送一个数据库的跨度内容与相关的类别。我遇到的问题是该类别的div标签未包含跨度。所以我看不出如何管理它。希望有人能帮助。先谢谢你。干杯。 Marc

+0

你好马哈茂德。我很遗憾没有找到一种方式来解释拍摄形式的情况... – Marc

+0

谢谢马哈茂德的标题更正...我不知道这是否值得downvote(放松)... – Marc

+0

马哈茂德,似乎有“没有更好的方式”来阻止某人使用StackOverflow解决他的问题,而不是降低他的职位..... – Marc

回答

2

following-sibling xpath函数呢?不过,您应该小心,并且只能选择到下一个div的兄弟姐妹。

例如,xsh2测试:

$div = //div[2] ; 
ls $div/following-sibling::span[count(preceding-sibling::div)=1+count($div/preceding-sibling::div)] ; 
+0

你好choroba。感谢您花时间尝试帮助。实际上,寻找您提出的解决方案帮助我找到了解决方案。非常感谢你。欢呼:) – Marc

+0

@Marc:如果您的解决方案与我的不同,如果您为了其他人的利益而共享它,这可能会很有趣。 – choroba