Avatar billede c-sharp Nybegynder
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?
Avatar billede snepnet Nybegynder
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
Avatar billede c-sharp Nybegynder
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å?
Avatar billede snepnet Nybegynder
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
Avatar billede c-sharp Nybegynder
03. maj 2006 - 17:39 #4
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");
Avatar billede c-sharp Nybegynder
04. maj 2006 - 09:00 #5
snepnet er du der :0)
Avatar billede snepnet Nybegynder
04. maj 2006 - 10:44 #6
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
Avatar billede c-sharp Nybegynder
04. maj 2006 - 21:25 #7
Hvilke af de 2 måder at gøre det på performer bedst? (mit eller dit forslag)
Avatar billede snepnet Nybegynder
05. maj 2006 - 08:11 #8
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
Avatar billede c-sharp Nybegynder
05. maj 2006 - 08:19 #9
Endnu engang super mange tak for hjælpen! Smid et svar så forøger jeg dine point :-)
Avatar billede snepnet Nybegynder
05. maj 2006 - 08:22 #10
Du får et svar her.
Vi skrives ved :o)
Mvh
Avatar billede c-sharp Nybegynder
05. maj 2006 - 08:37 #11
OM IGEN :-D
Avatar billede snepnet Nybegynder
05. maj 2006 - 08:40 #12
:oD .... Ja det er åbenbart ikke så nemt som man skulle tro :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester