26. april 2006 - 12:53
Der er
11 kommentarer og 1 løsning
Hjælp til Wilson.XmlDbClient
Hvordan er det muligt at tilgå data der ligger i en undermappe til en post i et xml-dokument. mit xml ser ud som følger: - <tester> - <test> <id>2638</id> <navn>kurt</navn> <ekstra> <m2>100</m2> <kw>4</kw> </ekstra> - <test> - <tester> Jeg vil gerne have m2 og kw med i mit udtræk?
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
26. april 2006 - 22:34
#1
har ikke arbejdet med hans xmldbclient, men sådan noget her burde virke: XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); XmlNode node = doc.SelectSingleNode("tester//test[id=2638]//ekstra"); XmlNode m2 = node["m2"]; XmlNode kw = node["kw"]; string mm = m2.InnerText; mvh
27. april 2006 - 07:48
#2
Hej snepnet! Tusind tak for dit svar ;-) Når jeg i dit eksempel skal loade noget XML via et URL, hvordan gør man så det? Skal jeg have fat i noget stream eller er der en mere direkte måde at gør det på?
27. april 2006 - 21:03
#3
hvis det er en url der giver dig noget rå xml, kan du hapse det med noget i denne stil: HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader reader = new StreamReader(response.GetResponseStream()); string xml = reader.ReadToEnd(); og så kan du så fortsætte med din tidligere postede kode. mvh
Nu spiller det meste :-) Men hvis jeg både skal have fat i id, navn og m2 skal jeg så lave 2 "læsninger" eks: XmlNode node = doc.SelectSingleNode("tester//test[id=2638]"); XmlNode node_ekstra = doc.SelectSingleNode("tester//test[id=2638]//ekstra");
Jeps - nu er jeg :o) Du kan sådan lidt forskelligt.... f.eks. sådan noget her: XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); XmlNode searchRoot = doc.SelectSingleNode("tester//test[id=2639]"); Console.WriteLine(String.Format("id : {0}", searchRoot["id"].InnerText)); XmlNode extra = searchRoot.LastChild; foreach(XmlNode child in extra.ChildNodes) { Console.WriteLine(String.Format("{0} : {1}", child.Name, child.InnerText)); } mvh
Hvilke af de 2 måder at gøre det på performer bedst? (mit eller dit forslag)
det ved jeg ikke - formentlig den sidste, men der er det jo så også et krav at det er den sidste node, så det er jo ikke lige så godt. du kan eventuelt tage tid på det. mvh
Endnu engang super mange tak for hjælpen! Smid et svar så forøger jeg dine point :-)
Du får et svar her. Vi skrives ved :o) Mvh
:oD .... Ja det er åbenbart ikke så nemt som man skulle tro :o)
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.