DOM Parser: как обрабатывать специальные символы - PullRequest
0 голосов
/ 18 мая 2011

У меня есть Webservice (API), который я передаю анализатору DOM, и он дает проанализированный результат

Код ссылки:

public void parseContent(){
  URL url = new URL(http://My_Webservice_API);
  URLConnection con = url.openConnection();
  con.setConnectTimeout(5000);
  con.setReadTimeout(5000);
  Document doc = null;
  DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
  DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
  doc = docBuilder.parse(new InputSource(con.getInputStream()));
  doc.getDocumentElement().normalize ();
  NodeList TC = doc.getElementsByTagName("root");
  m_cTotalNo = TC.getLength();
  System.out.println("Total no of elements : " + m_cTotalNo);
}

Все работает нормально. Парсер разбивается на "<element>5>7</element> ". Пожалуйста, объясни, как обращаться со специальным символом.

Ответы [ 3 ]

0 голосов
/ 18 мая 2011

Косая черта действительна как есть и не требует дальнейшего кодирования.

Единственные зарезервированные символы:

> < & %

Сущность XML для "/"?

Если синтаксический анализатор действительно ломается в этом (а не в каком-либо другом символе), то это ошибка.

Вы должны закодировать > как &gt; в XML.

0 голосов
/ 26 апреля 2015

Вы можете сделать это, используя XPL, который аналогичен XML, за исключением того, что допускает использование «специальных символов» XML в текстовых элементах. Если вам нужна полная мощность обработки XML, вы можете использовать синтаксический анализатор XPL для предварительной обработки. В следующей статье объясняется, как выполнять предварительную обработку без потери производительности (параллелизм Java). Искусственный интеллект, XML и параллелизм Java

0 голосов
/ 18 мая 2011

попробуйте экранировать символы с обратной косой чертой: "\"

пример: "5\/7" в содержании вашего элемента

...