Avatar billede jesper_dk Nybegynder
08. februar 2004 - 19:08 Der er 9 kommentarer og
1 løsning

Generere xml dokument

Jeg skal generere et xml dokument efter følgende specifikation:

<?xml version="1.0" encoding="iso-8859-1"?>
<id="firma-id" version="1.1">
<order>
  ...
</order>

Jeg arbejder med c#'s System.xml
mit spørgsmål er så hvordan får jeg generet følgende linje i xml dokumentet:
  <id="firma-id" version="1.1">

skal jeg bruge "XmlAttribute" eller en anden "xml" type?

hvis i skal bruge mere info så bare sig til 

ps. jeg har fået generet "<order>" sektionen.
Avatar billede arne_v Ekspert
08. februar 2004 - 19:15 #1
Den "XML" du angiver er ikke valid XML.

Der skal altid et yder element omkring det hele.
Avatar billede erikjacobsen Ekspert
08. februar 2004 - 19:21 #2
Du skal også have et navn på

<id="firma-id" version="1.1">

fx

<fiskefrikadeller id="firma-id" version="1.1">
Avatar billede arne_v Ekspert
08. februar 2004 - 19:57 #3
Med XmlTextWriter er det pærenemt at skrive XML. Attributter tilføjes med
WriteAttributeString.

Simpelt eksempel:

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

class MainClass
{
    public static void Main(string[] args)
    {
        XmlTextWriter xtw = new XmlTextWriter("C:\\z.xml", Encoding.UTF8);
        xtw.Formatting = Formatting.Indented;
        xtw.WriteStartDocument();
        xtw.WriteStartElement("all");
        xtw.WriteStartElement("one");
        xtw.WriteAttributeString("f1","1");
        xtw.WriteAttributeString("f2","a");
        xtw.WriteString("Line 1");
        xtw.WriteEndElement();
        xtw.WriteStartElement("one");
        xtw.WriteAttributeString("f1","2");
        xtw.WriteAttributeString("f2","bb");
        xtw.WriteString("Line 2");
        xtw.WriteEndElement();
        xtw.WriteStartElement("one");
        xtw.WriteAttributeString("f1","3");
        xtw.WriteAttributeString("f2","ccc");
        xtw.WriteString("Line 3");
        xtw.WriteEndElement();
        xtw.WriteEndElement();
        xtw.WriteEndDocument();
        xtw.Close();
    }
}

output:

<?xml version="1.0" encoding="utf-8"?>
<all>
  <one f1="1" f2="a">Line 1</one>
  <one f1="2" f2="bb">Line 2</one>
  <one f1="3" f2="ccc">Line 3</one>
</all>
Avatar billede jesper_dk Nybegynder
08. februar 2004 - 21:11 #4
det er altså ikke muligt at lave følgende linje
  <id="firma-id" version="1.1">
det skal laves på denne måde for at være validt

<order id="firma-id" version="1.1">
  ...
</order>
Avatar billede arne_v Ekspert
08. februar 2004 - 21:13 #5
Ja.
Avatar billede altinet Nybegynder
10. februar 2004 - 18:43 #6
Jespers eksempel viser...
<?xml version="1.0" encoding="iso-8859-1"?>
og ikke...
<?xml version="1.0" encoding="utf-8"?>

Jeg kan ikke finde en Encoding enum der rammer dette. Kan du Arne?

:-) Lars
Avatar billede arne_v Ekspert
10. februar 2004 - 20:15 #7
He he.

Nej - men:

1)  UTF-8 er at foretrække fremfor ISO-8859-1 til lige netop XML.

2)  Encoding.Default giver encoding="Windows-1252" og CP-1252 er
    det samme som ISO-8859-1.

Men indrømmet jeg savner også Encoding.ISO88591 meget !
Avatar billede jesper_dk Nybegynder
11. februar 2004 - 09:58 #8
hvad er forskellen på UTF-8 og ISO-8859-1, og hvorfor er det ene bedre end det andet ?

du har svaret på mit spørgsmål arne_v så her er dine poing, mange tak for hjælpen
Avatar billede arne_v Ekspert
11. februar 2004 - 10:13 #9
ISO-8859-1: kun vesteuropæisk, altid 1 byte per bogstav
UTF-8: flere sprog, 1 byte per bogstav for ASCII, 2 byte per bogstav for specielle

Eller lidt forsimplet: ÆØÅ er kun 1 byte i ISO-8859-1 men 2 byte i UTF-8.

Generelt foretrækker jeg iøvrigt ISO-8859-1, men XML standarden siger at
UTF-8 support er mandatory mens andre encoding's er optional - derfor er
man nok bedst stillet med UTF-8 til XML.
Avatar billede altinet Nybegynder
13. februar 2004 - 14:09 #10
:-) Lars
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