使用单个XPath查询检索(关联)两个单独的标记/属性?

时间:2012-06-04 20:14:28

标签: php xpath xml-parsing domdocument

我正在Xpathing我拥有的DOMDocument文件。这个domdocument的一般模式如下:

<h2> Title info </h2>
<div> .... </div>
<p> ...</p>
<div class = format_text> 
  <p> 
    <a href= "http://link..."><img src = "http://sourceofimageOnline.com"></a>
  </p>
</div>
<h2> 2nd title</h2>
<div> .... </div>
<p> ...</p>
<div class = format_text> 
  <p> 
    <a href= "http://link..."><img src = "http://sourceofimageOnline.com"></img></a> 
    <a href = "http://linkanother.."><img src = "http://sourceofimageonline.com"</img></a>
  </p>
</div>

关键是返回超链接图像的标题和src属性。 基本上,我将其渲染为:

标题1   Img URI 1 标题2    Img URI 2    Img URI 3 ... ..

现在可以使用

轻松检索标题
DomDocument->getElementsByTagNames('h2')

imgs src由XPATH查询检索:

//div[@class = "format_text"]/p/a/img/@src

这将返回我需要的所有信息。然而,我正在努力让img src与他们所涉及的头衔相关。由于它们是独立检索的,我无法理解我需要执行什么样的Xpath查询才能检索这两个以满足上述约束。

1 个答案:

答案 0 :(得分:1)

  1. 使用XPath表达式/html/body//h2
  2. 获取数组
  3. 使用另一个XPath表达式迭代此数组
  4. 请参阅当前h2.,并参阅第一个链接

    ./../div[@class='format_text']/p/a[$counter]/img

  5. XPath表达式,其中$counter是数组ID。