Avatar billede jesperthomsen1980 Nybegynder
05. november 2012 - 11:47 Der er 3 kommentarer

XmlTextReader - encoding

Hej eksperter.

Jeg er ved at lave en importkørsel til en XML fil, og det fungerer ganske godt. Har dog lige et enkelt problem jeg ikke kan finde ud af. Tror det er ret simpel, men ikke desto mindre magter jeg ikke opgaven.

Indlæsningskode:
  Dim textReader As XmlTextReader = New XmlTextReader("e:\test.xml")

While textReader.Read()
og så ellers derud af.

Problemet er at den fejler i indlæsning fordi XML dokumentet starter således:

<?xml version="1.0"?>

Retter jeg den til at starte således, virker det:

<?xml version="1.0" encoding="ISO-8859-9"?>

Altså vil jeg gerne have min xmltextreader til at benytte encoding ISO-8859-9 i stedet for uft-8 som den bruger hvis der ikke står noget angivet i XML dokumentet.

Hvordan får jeg den til det?

På forhånd tak.
Avatar billede jokkejensen Novice
05. november 2012 - 12:17 #1
TextReader tr = new StreamReader("e:\test.xml", Encoding.UTF8);

smid noget encoding på din reader.

/J
Avatar billede jesperthomsen1980 Nybegynder
05. november 2012 - 12:53 #2
Tak for svaret.

Er det lige meget om man vil anvende xmlreader eller streamreader?

Jeg har brugt en del af xmlreaderens funktioner som eksempelvis .name, .readcontentsAs, . MovetoAttribute

Dem kan jeg vel ikke anvende hvis jeg anvender en streamreader i stedet?

Hvis det gør nogen forskel, anvender jeg vb.net
Avatar billede jokkejensen Novice
05. november 2012 - 19:23 #3
Personligt, nok fordi jeg arbejder med xml, xslt og xpath konstant, foretrækker jeg

Dim xmlDoc As XmlDocument = New XmlDocument
xmlDoc.Load(Server.MapPath("Divide.xml"))

Så kan jeg udtrykke mig med xpath, bearbede xml'en med xslt, men jeg er sikker på du også vil finde fordele frem for en reader, der i min forstand kun kan læse fremaf i noderne. Et XmlDocument er meget skønnere at arbejde med, og kan let lagres igen som fysisk fil.

xmltextreaderen har ikke en encoding parameter, så med en xmlreader får du bare dokumentes encoding, den kan du selvfølgeligt bare ændre vha notepad -> save as.

Jeg skulle mene at din XmlTextReader beholder dens egenskaber og metoder selvom du fodre den med en streamreader.
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

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