Søge i et XML dokument

Tags:    c#

Hej udviklere

Jeg har et lille problem med et program jeg er ved at udarbejde. Jeg har programmeret et program, der skal gemme oplysninger i en xml fil. Jeg er så gået fast i min søge funktion. Det skal være sådan, at brugeren skal kunne indtast f.eks. SLAPR0038 i en tekstboks, og så skal jeg have koden til at vise alle de fejlmeldinger der er på denne printer(se mit XML for at forstå mit spg. bedre) jeg har fundet to stumper kode på nettet, men jeg mangler at finde ud af at vise resultatet i mit datagrid(dgResultater).

Jeg håber I kan hjælpe?

Fold kodeboks ind/udKode 

*********************************XML dokument**************
Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 28.03.2007 13:47 af Bruger #7690
8 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
Det er ikke testet kode, men måske kan det give dig en ide

Fold kodeboks ind/udKode 





Jeg skriver desværre kun i vb.net men det skulle vist ikke være et stort problem at oversætte

Private Sub readcurrenciesintoatable()

' Dim reader As XmlTextReader = New system.Xml.XmlTextReader
'("c:\\valuta.xml")

Dim reader As XmlTextReader = New System.Xml.XmlTextReader("http://www.nationalbanken.dk/dndk/valuta.nsf/valuta.xml")

Dim dtbl As New DataTable
Dim dr As DataRow
Dim dv As New DataView(dtbl)

Dim objNodes As New System.Xml.XmlDocument
objNodes.Load(reader)
Dim oNodes As System.Xml.XmlNodeList
oNodes = objNodes.SelectNodes("//currency")

dtbl.Columns.Add(New DataColumn("Valuta", GetType(String)))

dtbl.Columns.Add(New DataColumn("Kurs", GetType(String)))

Dim node As System.Xml.XmlNode

For Each node In oNodes

dr = dtbl.NewRow()
dr(0) = node.Attributes.GetNamedItem("desc").Value
dr(1) = node.Attributes.GetNamedItem("rate").Value
dtbl.Rows.Add(dr)

Next

dgvalutakurser.DataSource = dv

'dgvalutakurser.DataBind()

End Sub




Mange tak for kode eksemplet. Det vil jeg prøve i weekenden.

Jeg tænkte på. Hvis brugeren søger på f.eks. printer SLAPR0035. Så vil jeg gerne have fejlkode/fejlbeskrivelse samt de to datoer(Fejlmeldt og repereret) vise i datagrid'et sammen med.

Også hvis der ligger to fejlmeldinger på slapr0035 i XML dokumentet, vil jeg gerne have vist begge fejlmeldinger.

Eks.
Printernavn: SLAPR0035
Fejlkode: xxxxx
Fejlmeldt 30-3-2007
Repereret: 31-03-2007

Printernavn: SLAPR0035
Fejlbeskrivelse: løbet tør for papir
Fejlmeldt 12-4-2007
Repereret: 13-04-2007




Hej Jørgen

Dit eksempel kan jeg ikke få til at virke. Jeg kan ikke få
minDataGrid.Rows frem. Den kan simpelthen ikke finde.Rows???

Jeg fandt så en anden kode, men i den kode mangler få vist resultatet i mit datagrid.

Det må kunne lade sig gøre, at få det vist i mit datagrid??

Fold kodeboks ind/udKode 








"Datagrid" ?

Måske har jeg misforstået dig - Er det ikke en DataGridView på en WinForm du anvender?





Jeg anvender et Datagrid på en Winform. Du ved det man kan trække ind fra værktøjslinien i MS Visual Studio.

Der er vel ingen forskel på et DataGrid og en DataGridViewer?? Er det ikke det samme??



Den "originale" DataGrid var en del af version 1.1 og svær at ændre fra dens standard virkemåde.
DataGridView blev introduceret i 2.0 og er på mange måder forbedret.



Man kunne istedet konstruere et dataset, pumpe xml'en ind i dette og binde et dataview til datagrid'en.
Dataviewet skal naturligvis afspejle den ønskede del-mængde.

Der kan selvfølgelig være problemer med datamængden.



t