Parse Error Exception - PullRequest
       8

Parse Error Exception

1 голос
/ 22 сентября 2010

Я анализирую фид данных о погоде, и он работает с определенными местоположениями, но в некоторых местах выдается сообщение об ошибке:

09-22 10: 40: 33.364: WARN / System.err (3347): org.apache.harmony.xml.ExpatParser $ ParseException: в строке 465, столбец 29: неправильно сформирован (недопустимый токен)

Есть идеи, что может происходить?

Вот фрагмент XML:

                <hour time="11 AM">
                    <url>http://www.....</url>
                    <obsdate>9/22/2010</obsdate>
                    <txtshort>Parcialmente soleado</txtshort>
                    <weathericon>03</weathericon>
                    <temperature>26</temperature>
                    <feelslike>29</feelslike>
                </hour>

                <hour time="12 PM">
                    <url>http://www.....</url>
                    <obsdate>9/22/2010</obsdate>
                    <txtshort>Parcialmente soleado</txtshort>
                    <weathericon>03</weathericon>
                    <temperature>26</temperature>
                    <feelslike>29</feelslike>
                </hour>

Строка 465 - это тег 'hour' со значением атрибута 12pm. Я зарегистрировал код разбора, и он читает XML, пока не достигнет этой строки.

Ответы [ 3 ]

1 голос
/ 05 декабря 2010

На самом деле это оказался нераспознанный символ при разборе XML-документа.Чтобы исправить это, я включил тип кодировки, подобный следующему: (выберите кодировку, соответствующую вашему XML-документу)

InputSource inputSource = new InputSource(is);
//inputSource.setEncoding("iso-8859-1");
inputSource.setEncoding("utf-8");
1 голос
/ 22 сентября 2010

Ошибка говорит о том, что это происходит в столбце 29, а указанная вами строка содержит строку длиной всего 18 символов. По всей вероятности, это означает одну из двух вещей: либо эта строка содержит непечатаемые символы, которые мы не видим, один из которых является одним из небольшого числа символов, которые недопустимы в XML, или есть где-то одна ошибка, и ошибка возникает в следующей строке - возможно, в URL, который вы отредактировали.

0 голосов
/ 22 сентября 2010

Прежде чем пытаться прочитать любой XML-файл, всегда рекомендуется проверить правильность XML-документа, который вы пытаетесь прочитать .В этом случае попытайтесь наложить условие правильной формы на фид XML, который вы получаете из фида данных о погоде, прежде чем анализировать его.Используя C # .Net, это можно сделать следующим образом: -

XmlDocument doc = new XmlDocument();
doc.loadxml(rawXMLcontent);

Если это не удается, он переходит в блок исключений.Вы можете обрабатывать фид в блоке исключений соответственно.Это гарантирует, что вы никогда не получите никаких разборов исключений.Надеюсь, это поможет.

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