Avatar billede nzc Nybegynder
26. februar 2004 - 09:59 Der er 9 kommentarer og
1 løsning

Opsætning i XmlDocument (elementer indsættes et bestemt sted)

Hej!

Jeg har denne kode

using System;
using System.IO;
using System.Xml;

public class Sample
{
  public static void Main()
  {
    //Create the XmlDocument.
    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" +
                "<title>Pride And Prejudice</title>" +
                "</book>");

    //Create a new node and add it to the document.
    //The text node is the content of the price element.
    XmlElement elem = doc.CreateElement("price");
    XmlText text = doc.CreateTextNode("19.95");
    doc.DocumentElement.AppendChild(elem);
    doc.DocumentElement.LastChild.AppendChild(text);

    Console.WriteLine("Display the modified XML...");
    doc.Save(Console.Out);

  }
}

og den er oz fin og det hele. MEN ... jeg vil gerne kunne sætte elementer (children) ind i feks <title> elementet. Men hvordan fikser jeg lige det ? AppendChild sætter jo bare alt i røven af hinanden men jeg vil gerne ha lavet lidt mere struktur i mit document.

NZC
Avatar billede nute Nybegynder
26. februar 2004 - 10:05 #1
du er nødt til at hive <title> elementet ud og appende på dette. noget ála:

XmlNode objXmlNode = doc.selectSingleNode( "/book/title" );
objXmlNode.appendChild( elem );

/nute
Avatar billede nzc Nybegynder
26. februar 2004 - 10:20 #2
nute svar lige da :)
Avatar billede nute Nybegynder
26. februar 2004 - 10:22 #3
jamen ... svar

:o]
Avatar billede nzc Nybegynder
26. februar 2004 - 10:37 #4
nu jeg har dig i nærheden nute :)

Kan du fortælle mig hvorfor jeg ikke lige kan sende et XmlDocument fra min webservice client til min webservice? Min webservice tager et XmlDocument ind i koden men i proxyen vil den sq ha en XmlNode ?? Hvis jeg ændre det så siger den bare at den ikke kan finde metoden :( Den vil forresten heller ikke lege med en XmlNode hvis jeg sender den over :(
Avatar billede nzc Nybegynder
26. februar 2004 - 11:43 #5
Avatar billede nute Nybegynder
26. februar 2004 - 11:48 #6
godt ... :)

takker
Avatar billede nzc Nybegynder
26. februar 2004 - 14:50 #7
lige et sidste spørgsmål

Hvis jeg nu har et XML dokument med følgende opbygning

<root>
<element1></element1>
<element2></element2>
<element3></element3>
</root>

Jeg sætter nu et nyt element ind i <element1> vha denne kode

XmlElement elem = doc.CreateElement("ting");
            XmlText text = doc.CreateTextNode("Sager");
            XmlNode objXmlNode = doc.SelectSingleNode( "/root/element1" );
            objXmlNode.AppendChild(elem);
            objXmlNode.LastChild.AppendChild(text);

dvs at der nu er et element der hedder ting i mit element1. Nu vil jeg så sætte noget ind i ting vha samme slags kode som ovenfor. Men jeg får bare fejl om at elementet ikke eksisterer? Kan man ikke refererer elementer oprettet vha ovenstående ? de andre elementer er hardcoded men skulle det gøre en forskel?
Avatar billede nute Nybegynder
26. februar 2004 - 14:56 #8
dvs du får en fejl ved:

XmlNode objXmlNode = doc.SelectSingleNode( "/root/element1/ting" );

efter du har appendet 'ting' noden til 'element1' ??
Avatar billede nzc Nybegynder
26. februar 2004 - 16:23 #9
ye
Avatar billede nute Nybegynder
26. februar 2004 - 16:48 #10
hmm ... det kører fint for mig ...

using System;
using System.IO;
using System.Xml;

public class Sample
{

    public static void Main()
    {

        XmlDocument doc = new XmlDocument();
        doc.LoadXml("<book genre='novel' ISBN='1-861001-57-5'>" +
            "<title>Pride And Prejudice</title>" +
            "</book>");

        XmlNode root = doc.DocumentElement;

        //Create a new node.
        XmlElement elem = doc.CreateElement("price");
        elem.InnerText="19.95";

        //Add the node to the document.
        root.AppendChild(elem);
        XmlNode myNode = root.SelectSingleNode( "/book/price" );
        Console.WriteLine( myNode.InnerXml );
        Console.ReadLine();
    }
}

/nute
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