2013-04-03 14 views
1

對於HTML文本以下同胞對任何後代混亂

<html> 
<body> 
    <div id="1">1</div> 
    <div id="2">1</div> 
    <div id="3">1</div> 
</body> 
</html> 

我查詢

//following-sibling::div[3] 

,其結果是有

<div id="3">1</div> 

但根據XPath specs

以下兄弟軸包含上下文節點的以下內容 兄弟姐妹,上下文節點的父節點的子節點在文檔順序中的 上下文節點之後發生;

那麼在第三個div被成功找到後,上下文節點是什麼?看起來//當找到第一個div時,它後面沒有第三個div,最後一個可訪問的應該是[2]。如果上下文節點不是div,而是body或html,那麼div不是它們的兄弟。

回答

2

上下文節點是body元素中的第一個文本節點(僅包含空格)。

+0

有趣的是,通過爲後代或自我::節點()而不是後代或自我:: *創建//快捷方式,他們使它更通用,但現在即使對文本沒有興趣)節點(當例如文本節點對結構沒有影響時),存在隱含的文本(),並且在這種情況下文本確實影響結構解釋。 – Maksee 2013-04-04 08:35:19