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.
Annonceindlæg fra Infor
08. februar 2004 - 19:15
#1
Den "XML" du angiver er ikke valid XML. Der skal altid et yder element omkring det hele.
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">
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>
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>
08. februar 2004 - 21:13
#5
Ja.
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
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 !
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
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.
13. februar 2004 - 14:09
#10
:-) Lars
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.