Разбирать специальные символы XML? - PullRequest
1 голос
/ 15 ноября 2011

В течение последних 2 дней я искал, как анализировать XML со специальными символами, такими как! @ # $% ^ & * () ':; ", но я не получаю достаточно информации о том, как это реализовать .. Можеткто-нибудь, пожалуйста, предложите мне что-нибудь .. как я могу это сделать?

Ответы [ 5 ]

3 голосов
/ 15 ноября 2011

Вы можете попробовать что-то вроде this , которое дает ссылку на этот специальный символ.уже ответил на ваш вопрос здесь, так что посмотрите на Ответ .

1 голос
/ 02 августа 2013
documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
document = documentBuilder.parse(inputSource);
document.getDocumentElement().normalize();

Метод normalize может обрабатывать специальные символы и сущности для вас.

public abstract void normalize ()

Добавлено на уровне API 1

Переводит все текстовые узлы на всю глубину поддерева под этим узлом, включая узлы атрибутов, в «нормальную» форму, где только структура (например, элементы, комментарии, инструкции по обработке, разделы CDATA и ссылки на сущности) разделяет текстовые узлыт. е. нет ни соседних текстовых узлов, ни пустых текстовых узлов.Это можно использовать для обеспечения того, чтобы представление DOM документа было таким же, как если бы оно было сохранено и повторно загружено, и полезно, когда операции (такие как поиск XPointer [XPointer]), которые зависят от конкретной древовидной структуры документа,использоваться.Если параметр "normalize-characters" объекта DOMConfiguration, присоединенного к Node.ownerDocument, имеет значение true, этот метод также полностью нормализует символы текстовых узлов.

Примечание. В тех случаях, когда документ содержит CDATASections,одной операции нормализации может быть недостаточно, поскольку XPointers не различают узлы Text и узлы CDATASection.

0 голосов
/ 16 февраля 2015

Существует бесплатный инструмент командной строки для преобразования файлов со специальными символами в тексте в действительный XML.Это также гарантирует, что кодировка файла совпадает с указанной в объявлении.

Существует также пакет разработчика Java, который позволяет использовать анализатор для анализа таких файлов (называемых XPL) в качестве альтернативы XML или предварительной обработки в XML.Он использует StAX-подобный процесс под названием StAX-PL.

0 голосов
/ 15 ноября 2011
 public void XmlParsing(String questions_xml)
{
    try {

        /** Handling XML */
        SAXParserFactory spf = SAXParserFactory.newInstance();
        SAXParser sp = spf.newSAXParser();
        XMLReader xr = sp.getXMLReader();

        /** Create handler to handle XML Tags ( extends DefaultHandler ) */
        MyXmlHandler myXMLHandler = new MyXmlHandler();
        xr.setContentHandler(myXMLHandler);

        xr.parse( new InputSource(new StringReader(questions_xml)));


        } catch (Exception e) {
            String err = (e.getMessage()==null)?"XMLParsing exception":e.getMessage();
            Log.e("XMLParsing Exception",err); 
        }


}
now when I am trying to parse & then my app crashes?
0 голосов
/ 15 ноября 2011
  1. Действительный файл XML должен , а не иметь любой из этих символов "&", "<", ">" или "@". Вместо этого он должен иметь именованные объекты "& amp", "& lt", "& gt", "& reg", "& quot", "& apos" и т. Д .:

xml-разбор с "& amp;", "& reg;", но все равно получаются ошибки

  1. Если файл XML действителен, то синтаксический анализ (с использованием «android.util.XML», я полагаю) должен «просто работать».

Эти ссылки также могут помочь:

...