Je dois filtrer les résultats obtenus lorsque je charge mon fichier xml. Par exemple, j'ai besoin de rechercher les données XML pour les éléments avec le mot-clé "Chimie" par exemple. L'exemple ci-dessous xml est un résumé de mon fichier xml. Les données sont chargées dans une grille. Pourriez-vous aider? Merci!rechercher un jeu de données à partir du fichier xml
fichier Xml (résumé):
<CONTRACTS>
<CONTRACT>
<CONTRACTID>779</CONTRACTID>
<NAME>ContractName</NAME>
<KEYWORDS>Chemistry, Engineering, Chemical</KEYWORDS>
<CONTRACTSTARTDATE>1/8/2005</CONTRACTSTARTDATE>
<CONTRACTENDDATE>31/7/2008</CONTRACTENDDATE>
<COMMODITIES><COMMODITY><COMMODITYCODE>CHEM</COMMODITYCODE>
<COMMODITYNAME>Chemicals</COMMODITYNAME></COMMODITY></COMMODITIES>
</CONTRACT></CONTRACTS>
Mon code derrière la morue e est:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim ds As DataSet = New DataSet()
ds.ReadXml(AppDomain.CurrentDomain.BaseDirectory + "/testxml.xml")
Dim dtContract As DataTable = ds.Tables(0)
Dim dtJoinCommodities As DataTable = ds.Tables(1)
Dim dtCommodity As DataTable = ds.Tables(2)
dtContract.Columns.Add("COMMODITYCODE")
dtContract.Columns.Add("COMMODITYNAME")
Dim count As Integer = 0
Dim commodityCode As String = Nothing
Dim commodityName As String = Nothing
Dim dRowJoinCommodity As DataRow
Dim trimChar As Char() = {","c, " "c}
Dim textboxstring As String = "KEYWORDS like 'pencil'"
For Each dRow As DataRow In dtContract.Select(textboxstring)
commodityCode = ""
commodityName = ""
count = dtContract.Rows.IndexOf(dRow)
dRowJoinCommodity = dtJoinCommodities.Rows(count)
For Each dRowCommodities As DataRow In dtCommodity.Rows
If dRowCommodities("COMMODITIES_Id").ToString() = dRowJoinCommodity("COMMODITIES_ID").ToString() Then
commodityCode = commodityCode + dRowCommodities("COMMODITYCODE").ToString() + ", "
commodityName = commodityName + dRowCommodities("COMMODITYNAME").ToString() + ", "
End If
Next
commodityCode = commodityCode.TrimEnd(trimChar)
commodityName = commodityName.TrimEnd(trimChar)
dRow("COMMODITYCODE") = commodityCode
dRow("COMMODITYNAME") = commodityName
Next
GridView1.DataSource = dtContract
GridView1.DataBind()
End Sub
Salut, merci beaucoup. J'ai pris votre suggestion. http://stackoverflow.com/questions/2336450/display-xml-data – Anelim