我有一個XPath查詢:獲取所有的HREF從特定的XPath查詢
$q = $xpath->query("//p[@id='v{$versenumber}']/following-sibling::div[@class='admonition']");
工作正常,很好的事實。我已經使用下列從中提取我收到HTML:
$saveHTML = $dom->saveHTML($q->item(0));
然而,這裏面查詢我有,我想用別的東西來代替的HREF。我無法真正識別hrefs。我想有另一個查詢是相同的,但最後/a
,但沒有返回任何東西。
我本來以爲我可以像這樣訪問他們:
$x = $q->item(0)->getElementByTagName('a');
但這似乎沒有工作,要麼:(我究竟做錯了
更新
? HTML我想分析:
<p id="v1"><span class="verseref">1</span></p>
<div class="notes">
<p class="first">Notes</p>
<p class="last">Paragraph</p>
</div>
<div class="admonition">
<p class="last">HTML with <a href='foobar'>inside it</a>. I want to get all href attributes from here.</p>
</div>
並使用上述查詢,我可以很好地獲取文本,這只是我想處理每個'href'屬性,因爲它們是錯誤的,我需要更改它們。所以我分別處理每個<div class'admonition'>
以及其中的所有hrefs。
但是使用:
$q = $xpath->query("//p[@id='v{$versenumber}']/following-sibling::div[@class='admonition']//a/@href");
我似乎得到了巨大的HREF的數量爲一個段落,其中只有一個。
../../ga/ch1/#v1
#v6
#v5
#v6
../../mr/ch16/#v20
../ch12/
../../heb/ch13/#v9
../ch12/
../ch3/#v1
../../lu/ch1/#v6
../../1jo/ch1/#v8
../../1jo/ch1/#v10
../../1jo/ch1/#v7
../../1jo/ch1/#v9
#v1
../../eph/ch4/#v13
../../ro/ch14/
../../ro/ch14/#v1
../ch5/
../ch6/
../ch7/
../ch8/
../ch11/
../ch12/
../ch15/
../../ro/ch14/
#v12
../ch3/#v4
../ch15/#v24
../../eph/ch5/#v17
../../ro/ch8/#v6
../../../ot/ge/ch11/#v3
../../../ot/ps/ch133/
../../../ot/jer/ch32/#v39
../../ac/ch4/#v32
../../ro/ch12/#v16
../../ro/ch15/#v5
../../php/ch1/#v27
../../php/ch2/#v1
../../1th/ch5/#v13
../../jas/ch3/#v13
../../1pe/ch3/#v8
../../eph/ch4/#v13
../ch16/#v15
../ch16/#v17
../ch16/#v24
../../ac/ch18/#v12
../ch16/#v15
../ch16/#v17
../../ac/ch11/#v18
../../mt/ch28/#v19
../../mt/ch26/#v2
../ch2/#v14
../../ro/ch1/#v16
../../ro/ch1/#v16
../../2co/ch4/#v3
#v17
../../ac/ch20/#v30
#v18
../../../ot/isa/ch29/#v14
../../../ot/isa/ch29/#v14
../../../ot/isa/ch29/#v13
../ch2/#v14
../../ro/ch10/#v10
#v21
#v26
../ch2/
#v18
#v11
../../lu/ch6/#v38
../../../ot/ps/ch14/#v1
../../../ot/ps/ch53/#v1
../../col/ch2/#v3
#v23
#v18
../../ac/ch5/#v34
../../ac/ch26/#v24
../../ga/ch2/#v1
#v26
#v25
../../ac/ch24/#v25
../../2co/ch10/#v12
../../ro/ch7/#v18
#v30
../../ro/ch7/#v18
../../joh/ch8/#v44
../../mt/ch26/#v41
../../ro/ch8/#v18
#v26
../../../ot/isa/ch42/#v8
../../joh/ch3/#v3
../../../ot/pr/ch3/#v6
../../ro/ch8/#v23
#v26
..哪一定是整個文檔,否則我不知道它從哪裏得到所有這些hrefs。
您能否提供您正在嘗試解析的HTML代碼片段?就像'// p [@ id ='v {$ versenumber}']/following-sibling :: div [@ class ='admonition'] // a/@ href'不會選擇您要查找的內容? – Robin
我剛剛嘗試過。我得到的值,但多個值應該只有一個文本塊中的一個href。似乎它可能會引用整個文檔或者其他的內容? – Chud37
'following-sibling :: div [@ class ='admonition']'會選擇所有跟隨div的類,而不是類似於'admonition'的類,而不僅僅是下一個div。我想你已經知道了,但在這裏很難得到確切的想法。你能否提供你想要解析的部分內容,以及解決方案的輸出和你想要的內容? – Robin