2013-05-22 37 views
0

我正在開發一個.NET控件,它需要根據節點中的屬性值從XML文件中列出值,並且我正在難以獲取我的數據。.NET中的XML數據綁定 - 獲取節點值,其中屬性值等於

的XML格式是這樣的:

<root> 
    <item> 
    <field name="business title">My Hardware Store</field> 
    <field name="address">123 Main Street</field> 
    </item> 
    <item> 
    <field name="business title">Corner Bar</field> 
    <field name="address">345 Country Blvd</field> 
    </item> 
</root> 

我有使用以下VB正確加載XML文件:

Dim doc As New XmlDocument() 

doc.Load(MapPath(filepath)) 
Dim nodes As XmlNodeList = doc.SelectNodes("root/item/field") 

lvDirectoryListing.DataSource = nodes 
'binding dataset to listview. 
lvDirectoryListing.DataBind() 

但我「有麻煩搞清楚米的結合ASCX文件,我需要中繼器在頁面上顯示所有的業務標題,所以當節點名是「field」,name屬性值是「business title」時,我需要節點值。有關如何獲取節點值以及如何獲取屬性值的信息,但沒有任何f或者我在找什麼。幫幫我?

回答

0

你就不能改變你的XPath:

doc.SelectNodes("root/item/field[name='business title']") 
+0

這看起來很合理,但是接下來我會放入ASCX文件來顯示它? <%#綁定(「字段」)%>? – unclesol

+0

不確定。它不是'綁定(「價值」)嗎?這就是爲什麼有些人更喜歡使用MVVM並將其綁定到ViewModel,而不是直接綁定到xml文檔。 – paul

+0

沒有顯示任何內容。我已經看到了如果我可以在我的數據綁定中使用條件來實現這個技巧。無論如何,我將需要我的數據源來保存其餘數據以供後續操作,因此在代碼中對此進行過濾並不會對您有所幫助。無論如何,謝謝你的回答! – unclesol

0

得到這個一個想通了。在VB代碼,我只需要拉下前兩個節點:

Dim nodes As XmlNodeList = doc.SelectNodes("root/item") 

然後,在ASCX文件,使用XPath在數據綁定,以限制結果到外地的節點值與這種特殊屬性:

<%# XPath("feild[@name='business title']")%>