2016-11-20 131 views
1

類型HTML結構的我就像是如何使用XPath獲取當前節點的父節點的前一個兄弟節點?

. 
. 
<a name="128312"></a> 
<li> 
    <ul class="post"> 
    . 
    . 
    </ul> 
</li> 
<a name="3849"></a> 
<li> 
    <ul class="post"> 
    . 
    . 
. 
. 

,並從node作爲ul S的一個背景下,我想最近aname,這意味着父母的nameli「s`)前一個兄弟,的

node.ParentNode.PreviousSibling.GetAttributeValue("name", null) 

等效除了

  • 我想在XPath語法中執行此操作
  • 上述查詢由於某種原因正在返回一個節點,其內容爲標籤,並在ali之間換行。
+0

到目前爲止您嘗試了哪些XPath? – wing

+0

我目前有'parent :: node()/之前同級::一個/ @名稱'工作。如果它適合你,我可以把它作爲你可以接受的答案,以便它也可以幫助別人。 – wing

回答

1

從機翼的評論是部分正確的。使用

parent::ul/preceding-sibling::a[1]/@name 

這將讓你的第一a之前的ul(而不是全部)。它不會檢查它是否也是第一個元素。如果這是必需條件,請使用

parent::ul/preceding-sibling::*[1][self::a]/@name 
相關問題