25. september 2003 - 20:40
Der er
9 kommentarer og 1 løsning
XmlReader > valid xml
Hej, Jeg udtrækker data i xml-format fra en SQL server vha. ExecuteXmlReader(). Mit spørgsmål er: Hvordan kan jeg udskrive xml'en igen "well-formed"? Hvornår skal jeg bruge ReadOuterXml(), ReadInnerXml(), osv.?
Annonceindlæg fra Barco
25. september 2003 - 20:43
#1
Den XML du får ud, skulle da vel gerne være well-formed... Men tænker du på, hvordan du udskriver den indenteret, så den bliver letlæselig?
25. september 2003 - 20:49
#2
Well-formed har en meget specifik betyding i XML og den XML du får ud er med garanti well-formed (i XML betydning). Forskellen på ReadOuterXml og ReadInnerXml er at den første læser selve start og slut tag med mens den anden ikke gør.
25. september 2003 - 20:50
#3
Nej ikke hvordan den bliver letlæselig. XML'en jeg modtager fra SQL Serveren er helt sikkert well-formed. Mit problem er at udskrive den igen fra min XmlReader i C# så den igen bliver well-formed. Lige nu udskriver jeg bare XML'en med: myXmlReader.ReadInnerXml() Når jeg validerer output er den ikke well-formed. Skal jeg både bruge ReadOuterXml() og ReadInnerXml() for at generere XML'en igen ud fra min XmlReader?
25. september 2003 - 20:54
#4
Svært at sige uden at se hvad der komme rud. Men umiddelbart ville jeg da tro at du skulle have start og slut tag med (altså outer).
25. september 2003 - 20:59
#5
Når jeg kun bruger ReadOuterXml() får jeg følgende resultat: <?xml version="1.0" encoding="UTF-8"?> <Schema name="Schema1" xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes"> <ElementType name="tilmeldtkursus" content="empty" model="closed"> <AttributeType name="tilmeldtkursusid" dt:type="i4" /> <AttributeType name="medlemid" dt:type="i4" /> <AttributeType name="tidspunktid" dt:type="i4" /> <AttributeType name="isKlasseundervisning" dt:type="ui1" /> <AttributeType name="isFjernundervisning" dt:type="ui1" /> <attribute type="tilmeldtkursusid" /><attribute type="medlemid" /> <attribute type="tidspunktid" /> <attribute type="isKlasseundervisning" /> <attribute type="isFjernundervisning" /> </ElementType> </Schema> <tilmeldtkursus xmlns="x-schema:#Schema1" tilmeldtkursusid="77" medlemid="109" tidspunktid="83" isKlasseundervisning="0" isFjernundervisning="1" /><tilmeldtkursus xmlns="x-schema:#Schema1" tilmeldtkursusid="79" medlemid="110" tidspunktid="52" isKlasseundervisning="1" isFjernundervisning="0" /> <tilmeldtkursus xmlns="x-schema:#Schema1" tilmeldtkursusid="81" medlemid="113" tidspunktid="63" isKlasseundervisning="1" isFjernundervisning="0" /><tilmeldtkursus xmlns="x-schema:#Schema1" tilmeldtkursusid="83" medlemid="116" tidspunktid="99" isKlasseundervisning="1" isFjernundervisning="0" /> <tilmeldtkursus xmlns="x-schema:#Schema1" tilmeldtkursusid="87" medlemid="127" tidspunktid="46" isKlasseundervisning="1" isFjernundervisning="0" /><tilmeldtkursus xmlns="x-schema:#Schema1" tilmeldtkursusid="89" medlemid="128" tidspunktid="38" isKlasseundervisning="1" isFjernundervisning="0" /> I kan nok let se mit problem
27. september 2003 - 23:12
#6
Hvordan får du det output ud ? SqlCommand cmd = new SqlCommand("SELECT * FROM T1 FOR XML AUTO", con); XmlReader rdr = cmd.ExecuteXmlReader(); rdr.Read(); string s; do { s = rdr.ReadOuterXml(); if(s!="") { Console.WriteLine(s); } } while(s!=""); rdr.Close(); giver mig output som: <T1 F1="1" F2="A" /> <T1 F1="2" F2="BB" /> <T1 F1="3" F2="CCC" /> og det mangler jo kun XML header + start og slut tag for at være well-formed XML.
01. oktober 2003 - 10:47
#7
Jeg plejer at knytte et XML Schema til mine XML data. På denne måde sikrer jeg mig at den opfylder visse krav (fx. om en kolonne er unik, om den har under-kolonner osv).
03. november 2003 - 10:04
#8
Jeg er ikke helt med - hvad er det præcist du mener med "well formed"... er det fordu du gerne vil have værdierne som XMLNodes istedet for een XMLNode med attributter?
03. november 2003 - 10:07
#9
18. august 2010 - 11:50
#10
Lukker...
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.