0
我正在使用XPath提取DOM元素值。 由於XPath不一致,我使用了一些通配魔術來選擇同一級別上的所有DOM元素。用於HTML的XPath通配符
例XPath的HTML文檔中:
//div[@id='floatswrap']/div/div[2]/div[1]
//div[@id='floatswrap']/div/div[2]/div[2]
//div[@id='floatswrap']/div/div[2]/div[3]
......
//div[@id='floatswrap']/div/div[2]/div[100]
我已經試過*/div[@id='floatswrap']/div/div[2]/div
通配符(注意開頭的星號字符,沒有方括號在年底),但它失敗。 所以我使用以下(上面的示例代碼): //div[@id='floatswrap']/div/div[2]/div[*]
(注意括號內的星號),現在就開始炒作了。
由於我是XPath新手,是否有更好更一致的方式使用通配符來選擇XPath節點?
編輯: 假設我有以下HTML:
<html>
<head>
</head>
<body>
<div id="floatswrap">
<div>
<div>First</div>
<div> <!-- SELECT ALL DIV NODES WRAPPED IN THIS DIV -->
Second
<div>One</div> <!-- SELECT THIS NODE -->
<div>Two</div> <!-- SELECT THIS NODE -->
<div>Three</div> <!-- SELECT THIS NODE -->
<!-- ........ --> <!-- SELECT ALL DIV NODES -->
<div>Hundred</div> <!-- SELECT THIS NODE -->
</div> <!-- ./Second DIV -->
</div>
<div> Some Text </div>
<div> Some Other Text </div>
</div> <!-- ./floatswrap -->
</body>
</html>
我想選擇第二個DIV的所有div。
ID都是唯一的,所以期運用'// DIV [@id = ... ]'是合理的。沒有任何示例輸入,可以對後續內容進行進一步評論。請至少發佈整個div,以及預期的產出。 –
我在這裏試圖完成的是在特定DOM節點下定義爲XPath字符串的DOM節點上進行迭代。 – dede
但通過使用通配符。我可以使用其他環境或使用CSS選擇器來完成此任務,但在XPath級別上這樣做似乎要快得多,並且有可能在運行時動態定義它。 – dede