javascript, то есть: xml со специальными символами, loadxml (xml) возвращает false - PullRequest
0 голосов
/ 06 июля 2010

Я отправляю XML-документ с гралями в веб-браузер и хочу показать его части. Однако я получаю ошибку. Я отладил, и ошибка была из-за специальных символов, таких как ü, ö a.s.o В Firefox у меня нет проблем, все работает. Однако Internet Explorer 8 не загружает XML. Я посмотрел на ответ и увидел, что он не может правильно понять. Вместо него получаются прямоугольники ....

Вот XML-файл:

<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<IOX_Commands>
    <IOX_Device>
            <cmd num="4" name="Delete" value="msg" desc="Meldungen len"/>
        </IOX_Device>
<IOX_Commands>

Вот часть Grails:

def get_Commands={
    //aus xml datei lesen:conf/IOX_commands.xml
    def file = "/conf/IOX_commands2.xml"
    def xmlfile = new File(file).text
    def xmlrecords = new XmlParser().parseText(xmlfile)
    response.contentType = "text/xml";
    render(xmlfile)
}

и вот часть JavaScript:

if (window.DOMParser)
               {
                    parser=new DOMParser();
                    msrctl_steuerworte_var.ioxCommands=parser.parseFromString(response.responseText,"text/xml")
               }
               else // Internet Explorer
               {
                    msrctl_steuerworte_var.ioxCommands=new ActiveXObject("Microsoft.XMLDOM");
                    msrctl_steuerworte_var.ioxCommands.async="false";
                    msrctl_steuerworte_var.ioxCommands.load(response.responseText);
               }
//....

Когда я пытаюсь проверить файл xml на http://www.w3schools.com/XML/xml_validator.asp, я получаю сообщение об ошибке.

Может кто-нибудь сказать, как решить проблему? Я уже пытался сделать файл и кодировку UTF-8, но это не помогает. Я думаю, это либо конфигурация IE, либо мне нужно что-то добавить в контроллер grails.

Ответы [ 2 ]

0 голосов
/ 06 июля 2010

хорошо, я думаю, что решил часть проблемы с:

    def get_Commands={ //aus xml datei lesen:
    conf/IOX_commands.xml def file = 
    "/conf/IOX_commands2.xml" def xmlfile = new File(file).text 
    def xmlrecords = new XmlParser().parseText(xmlfile) 
    response.contentType = "text/xml"; 
    render(text:xmlfile,contentType:"text/xml",encoding:"ISO-8859-1")}
0 голосов
/ 06 июля 2010

Я уже пытался сделать файл и кодировку UTF-8, но это не помогает.

Но так и должно быть. Обязательно конвертируйте фактическое содержимое в UTF-8 - просто изменение заголовка не поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...