Avatar billede flvind Nybegynder
19. maj 2006 - 12:01 Der er 13 kommentarer og
1 løsning

Indlæsning af tredje parts XML i UTF-8

Hej
Jeg har et problem med at min XmlNodereader og min Xpathsøgning ikke returnerer æøå.

hvordan sætter jeg dem til at bruge UFT-8?
Avatar billede arne_v Ekspert
20. maj 2006 - 03:10 #1
må vi se lidt XML og lidt kode ?
Avatar billede flvind Nybegynder
20. maj 2006 - 08:41 #2
hej her er lidt kode fra mit program, hvor jeg benytter xpath.

----kode----
private void lblKnap1ven_Click(object sender, System.EventArgs e)
        {
            XPathDocument infoDoc = new XPathDocument("c:\\tourhelp\\info1.xml");
            XPathNavigator navigator = infoDoc.CreateNavigator();
            XPathNavigator nav = infoDoc.CreateNavigator();
            XPathNodeIterator iterator = navigator.Select(initSamlet);
                           
            while (iterator.MoveNext())
            {
                #region Søg info i svar

                iterator.Current.MoveToParent();
                iterator.Current.MoveToFirstChild();
                iterator.Current.MoveToFirst();
----kode----

her følger et udsnit af min xml
----xml----
<?xml version="1.0" encoding="UTF-8"?>
<Content>
    <Product updateMode="none">
        <uuid>1:67:91f7baf8ec2e0c66b3ad44</uuid>
        <internalName>Feriehuse:Storkesøen, Ribe</internalName>
        <status>O</status>
        <ownerOrganisation>Ribe Turistbureau</ownerOrganisation>
        <ownerId>674224</ownerId>
            <productArea>
            Indeholder informationer om hvilket område produktet tilhører
            </productArea>
            <productType>
                Indeholder informationer om typen af produktet
            </productType>
        <emailAddress>info@storkesoen.dk</emailAddress>
        <creationDate>2002-02-22 14:34:34.0</creationDate>
        <modificationDate>2005-01-04 14:46:00.0</modificationDate>
            <Image id="primary">
                Indeholder informationer om billeder tilhørende produktet
            </Image>
            <Description>
                Indeholder beskrivelsen af produktet
            </Description>
        <community>Ribe</community>
            <Name>
                Indeholder navnet på produktet.
            </Name>
            <Address sortOrder="1">
                Indeholder informationer om produktets adresse
            </Address>
            <FacilityValue>
                Indeholder kontaktoplysninger og eventuelt andre væsentlige oplysninger
            </FacilityValue>
    </Product>
</Content>
----xml----
Avatar billede arne_v Ekspert
21. maj 2006 - 00:08 #3
er ÆØÅ i XML filen i rigtig UTF-8 encoding ?
Avatar billede flvind Nybegynder
22. maj 2006 - 07:11 #4
Ø = &#195;&#184;
Å = &#195;&#165;
Æ = &#195;&#166;
Avatar billede arne_v Ekspert
22. maj 2006 - 13:15 #5
det er det så ikke

det er konverteret til bytes udfra UTF-8 som derefter er lavet om til entiteter

jeg vil tro at du skal læse doc ind i en streng, replace entiteter og så
loade streng som XML
Avatar billede flvind Nybegynder
22. maj 2006 - 13:22 #6
pas
Avatar billede flvind Nybegynder
24. maj 2006 - 11:45 #7
kan du ikke komme med et eksempel
Avatar billede arne_v Ekspert
25. maj 2006 - 02:09 #8
string xml = "<tag>&#195;&#184;</tag>";
            XmlDocument doc1 = new XmlDocument();
            doc1.LoadXml(xml);
            MessageBox.Show(doc1.OuterXml);
            XmlDocument doc2 = new XmlDocument();
            doc2.LoadXml(xml.Replace("&#195;&#184;", "&#248;"));
            MessageBox.Show(doc2.OuterXml);
Avatar billede flvind Nybegynder
25. maj 2006 - 10:33 #9
hmm hvor finder du listen der indeholder de forskellige tegn?

Jeg mener både &#195;&#184; og &#248;
Avatar billede arne_v Ekspert
26. maj 2006 - 01:42 #10
using System;
using System.Text;

namespace E
{
    public class MainClass
    {
        public static void Main(string[] args)
        {
            for(int i = 160; i < 255; i++)
            {
                char c = (char)i;
                string s = c.ToString();
                byte[] utf8 = Encoding.UTF8.GetBytes(s);
                byte[] iso88591 = Encoding.Default.GetBytes(s);
                Console.WriteLine(utf8[0] + " " + utf8[1] + " -> " + iso88591[0]);
            }
        }
    }
}
Avatar billede flvind Nybegynder
26. maj 2006 - 07:44 #11
hej Arne det lyder godt men er lidt i tvivl om hvordan man læser et helt XML dokument ind og foretager erstatningen.
Avatar billede arne_v Ekspert
26. maj 2006 - 13:41 #12
StreamReader sr = new StreamReader(filnavn);
string allxml = sr.ReadToEnd();
sr.Close();
Avatar billede flvind Nybegynder
26. maj 2006 - 14:00 #13
takker det vil jeg lige kigge på når tiden er der
Avatar billede arne_v Ekspert
02. juni 2006 - 20:12 #14
jeg ligger et svar i mellemtiden
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