Avatar billede jakovski Nybegynder
10. juni 2004 - 10:29 Der er 10 kommentarer og
1 løsning

XML header tag.

Hej.

Jeg skal skrive nogle dataset's ud i XML filer, og det er jo meget nemt.

det jeg har besvær med er at skrive header tagget så det indeholder info om encoding?

<?xml version="1.0" encoding="UTF-8"?>
Avatar billede ladyhawke Novice
10. juni 2004 - 11:08 #1
hvis du skal skrive hele datasets kan du vel bare bruge "WriteXml" metoden ?
Avatar billede jakovski Nybegynder
10. juni 2004 - 13:24 #2
Ja det er ingen problem at skrive datasets til xml, problemet er at skrive headeren.:

<?xml version="1.0" encoding="UTF-8"?>
Avatar billede ladyhawke Novice
10. juni 2004 - 13:34 #3
kommer den ikke med automatisk? Skriver du schema med?
Avatar billede ladyhawke Novice
10. juni 2004 - 13:43 #4
det her er godt nok C#, men det er nok lignende for VB:
System.IO.FileStream myFileStream = new System.IO.FileStream(filename, System.IO.FileMode.Create);
// Create an XmlTextWriter with the fileStream.
System.Xml.XmlTextWriter myXmlWriter = new System.Xml.XmlTextWriter(myFileStream, System.Text.Encoding.Unicode);
// Write to the file with the WriteXml method.
thisDataSet.WriteXml(myXmlWriter); 
myXmlWriter.Close();
Avatar billede jakovski Nybegynder
10. juni 2004 - 13:55 #5
Følgende er toppen af en xmlfil når jeg skriver schema med. jeg mangler kun encoding="UTF-8"?>

<?xml version="1.0" standalone="yes" ?>
- <NewDataSet>
- <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:Locale="da-DK">
- <xs:complexType>
- <xs:choice maxOccurs="unbounded">
- <xs:element name="Actor">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="CUSTNO" type="xs:decimal" minOccurs="0" />
  <xs:element name="ACTNO" type="xs:decimal" minOccurs="0" />
  <xs:element name="NM" type="xs:string" minOccurs="0" />
  <xs:element name="AD1" type="xs:string" minOccurs="0" />
  <xs:element name="AD2" type="xs:string" minOccurs="0" />
  <xs:element name="AD3" type="xs:string" minOccurs="0" />
  <xs:element name="PNO" type="xs:string" minOccurs="0" />
  <xs:element name="MAILAD" type="xs:string" minOccurs="0" />
  <xs:element name="CUSTPRGR" type="xs:decimal" minOccurs="0" />
  <xs:element name="CUSTPRG2" type="xs:decimal" minOccurs="0" />
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  </xs:choice>
  </xs:complexType>
  </xs:element>
  </xs:schema>
Avatar billede jakovski Nybegynder
10. juni 2004 - 13:59 #6
uden schema.:

<?xml version="1.0" standalone="yes" ?>
- <NewDataSet>
- <Actor>
  <CUSTNO>101140</CUSTNO>
Avatar billede jakovski Nybegynder
10. juni 2004 - 14:32 #7
Jeg kan godt lave en XML.Textwriter i VB ser således ud.. altså ingen header ?

- <NewDataSet>
- <Actor>
  <CUSTNO>101140</CUSTNO>

If thisDataSet Is Nothing Then
  Return
End If

'Create a file name to write to.
Dim filename As String = "c:\myXmlDoc.xml"

' Create the FileStream to write with.
Dim myFileStream As New System.IO.FileStream _
  (filename, System.IO.FileMode.Create)

' Create an XmlTextWriter with the fileStream.
Dim myXmlWriter As New System.Xml.XmlTextWriter(myFileStream, System.Text.Encoding.UTF8)

' Write to the file with the WriteXml method.
thisDataSet.WriteXml(myXmlWriter)
myXmlWriter.Close()
Avatar billede jakovski Nybegynder
10. juni 2004 - 15:21 #8
YES.. nu har jeg fundet ud af det..

If thisDataSet Is Nothing Then
    Return
End If
' Create a file name to write to.
Dim filename As String = "c:\myXmlDoc.xml"
' Create the FileStream to write with.
Dim myFileStream As New System.IO.FileStream _
(filename, System.IO.FileMode.Create)
' Create an XmlTextWriter with the fileStream.
Dim myXmlWriter As New System.Xml.XmlTextWriter(myFileStream, System.Text.Encoding.UTF8)
' Write to the file with the WriteXml method.
       
myXmlWriter.WriteStartDocument()  <---- Denne metode skriver headeren

thisDataSet.WriteXml(myXmlWriter)
myXmlWriter.Close()
Avatar billede jakovski Nybegynder
10. juni 2004 - 15:23 #9
Tak for hjælpen ladyhawke.. du bragte mig på sporet af løsningen.. point til dig

Mvh.

Jakovski
Avatar billede ladyhawke Novice
11. juni 2004 - 07:56 #10
fint du fik det til at virke, udsnittet jeg sendte med havde jo også dette med: new System.Xml.XmlTextWriter(myFileStream, System.Text.Encoding.Unicode);

Jeg regnede med at det var det der skulle til, men kunne ikke nå at teste det igen...
Avatar billede jakovski Nybegynder
11. juni 2004 - 08:28 #11
Ikke helt..

dette udsnit sørger kun for at der skrives med den valgte encoding.
new System.Xml.XmlTextWriter(myFileStream, System.Text.Encoding.Unicode);

myXmlWriter.WriteStartDocument()  <---- Denne metode skriver headeren
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
Kurser inden for grundlæggende programmering

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