2012-12-03 48 views
-2

好的,有一些問題,我可以運行XPathSelectElements來獲取三個(在這種特定情況下,儘管它可能是X數)我想從中獲取信息的節點集。我在抓取一些符合XHTML的HTML,並且不得不使用XPathSelectElements來查找X號(在本例中爲Order對象)。XPathSelectElement上的XPathSelectElement

考慮HTML/XML簡單求到這樣的事情:

<RandomInfo> 
<NAME>ASDSADS</NAME> 
<WHAT>Dunno</NAME> 
<div id='OrderResults'> 
    <div id='order_foo'> 
    <ID>1</ID> 
    <Customer>Bill</Customer> 
    <Total>500</Total> 
    </div> 
    <div id='order_bar'> 
    <ID>2</ID> 
    <Customer>Bob</Customer> 
    <Total>200</Total> 
    </div> 
    <div id='order_abc'> 
    <ID>1</ID> 
    <Customer>Butch</Customer> 
    <Total>100</Total> 
    </div> 
</div> 
</RandomInfo> 

的「order_ *」的名稱是動態的,選擇的節點,不能依靠。所以我有一個XPathSelectElements,它可以正確地獲取三個div的集合。但是,當我迭代每個XNode返回並嘗試調用XPathSelectElement(「// Customer」)時,我總是得到相同的值,以返回該XPathSelectElement調用。我可以使用VS來查看節點對象是否正在更改,但XPathSelectElement沒有從當前節點獲取。我如何強制它在自己的「根」,而不是顯然以某種方式回到父節點/文檔獲得價值?

+1

歡迎來到[so],你可以發佈一小段C#代碼嗎?謝謝 –

回答

2

您可以使用此XPath

./Customer

.代表當前節點(通常暗示)

/代表子女特定節點,並在//一個開始

1

XPath表示來自文檔根目錄的任何節點。因此,您可能位於任何節點中,它將始終與您的文檔的所有客戶節點匹配。 //(在xpath開始或中間)對性能來說是非常糟糕的,應該避免!

相關問題