2016-11-20 7 views
1

私が持っているHTML構造のタイプはXPathを使用して現在のノードの親の前の兄弟を取得するにはどうすればよいですか?

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

のようなもので、ul Sの1つであるnodeの文脈から、私は親ののnameを(つまり、最も近いanameを取得したいですli「S`)前の兄弟、その

    以外

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

    の等価

  • 私はXPathの構文でそれをしたい
  • 何らかの理由で上記のクエリは、内容がタブと改行であるノードをaliの間に戻しています。
+0

これまでにお試しいただいたXPathは何ですか? – wing

+0

私は現在 'parent :: node()/ preceding-sibling :: a/@ name'を使っています。それがあなたのために働くなら、私はあなたが受け入れる答えとしてそれを置くことができるので、他人を助けるかもしれません。 – wing

答えて

1

翼のコメントは部分的に正しいです。

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

使用それは前のあなたにul(それらのすべてではなく)を最初aを取得します。それが最初の要素であるかどうかはチェックしません。それが必須の場合は、

parent::ul/preceding-sibling::*[1][self::a]/@name 
関連する問題