Avatar billede kernelx Juniormester
08. oktober 2008 - 18:07 Der er 5 kommentarer og
1 løsning

XML convert special tegn

hi,

jeg har foelgende problem.

String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+
  "<bla>øå<sub><sub></bla>";

denne string bliver sendt til en web-service, som siger:
org.xml.sax.SAXParseException: XML document structures must start and end within the same entity.

er der nogen, som kan hjaelpe?


med venlig hilsen
KernelX
Avatar billede arne_v Ekspert
08. oktober 2008 - 18:13 #1
Der mangler en slash foran sidste sub.
Avatar billede arne_v Ekspert
08. oktober 2008 - 18:16 #2
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+
  "<bla>øå<sub><sub></bla>";

String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+
  "<bla>øå<sub></sub></bla>";
Avatar billede kernelx Juniormester
09. oktober 2008 - 17:36 #3
ok, sorry.
Denne fejl kom jeg til at lave, mens jeg havde aabnet dette spoergsmaal.

Foelgende fejl kommer staedigvaek, hvis jeg bruger øå, men virker hvis jeg bruger aa og oe i staedet for:
org.xml.sax.SAXParseException: XML document structures must start and end within the same entity.
Avatar billede arne_v Ekspert
09. oktober 2008 - 17:46 #4
Jeg faar ingen fejlp paa:

import java.io.IOException;
import java.io.StringReader;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;

import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;

public class XMLPars {
    public static void dom(String xml) throws ParserConfigurationException, SAXException, IOException {
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        Document doc = db.parse(new InputSource(new StringReader(xml)));

    }
    public static void sax(String xml) throws ParserConfigurationException, SAXException, IOException {
        SAXParserFactory spf = SAXParserFactory.newInstance();
        SAXParser sp = spf.newSAXParser();
        XMLReader xr = sp.getXMLReader();
        xr.parse(new InputSource(new StringReader(xml)));
    }
    public static void main(String[] args) throws Exception {
        String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
                      "<bla>øå<sub></sub></bla>";
        dom(xml);
        sax(xml);
    }
}

(men naturligvis fejl hvis den slash mangler)
Avatar billede kernelx Juniormester
09. oktober 2008 - 17:55 #5
ok mange tak.
husk at skrive et eller andet som svar.

saa maa det vaere den webservice, som jeg connecter til, som ikke kan lide disse tegn.
Jeg har lavet en methode, som laver alle tegn, som har en stoerre unicode-vaerdi end 127 om til
&#nummer;
saa virker det ogsaa.
Avatar billede arne_v Ekspert
10. oktober 2008 - 02:24 #6
Hm. Det var godt nok en ringe web service.

Og et svar.
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