PullRequest
       27

1 голос
/ 29 августа 2011

У меня сейчас проблема, Мне нужно проанализировать XML, но некоторые "значения" нескольких тегов имеют <![CDATA[]]>. Я сейчас работаю над тем, как я могу разобрать эти значения. Я много чего перепробовал, но до сих пор не уверен, как мне сделать что-то подобное

public class myParser extends DefaultHandler 
{
     public void startElement(String uri, String localName, String qName, Attributes attributes)throws SAXException
    {}
    public void endElement(String uri, String localName, String qName) throws SAXException
    {}
    public void characters(char[] ch, int start, int length) throws SAXException
    {}
}

Это структура, над которой я работаю.

И я называю мой анализ как:

MyParser parser = new MyParser();
Xml.parse(xml, parser);

1 Ответ

2 голосов
/ 29 августа 2011

Вам не нужно их анализировать.Секции CDATA являются стандартной частью синтаксиса XML и используются для инкапсуляции строковых данных, которые в противном случае потребовали бы XML-кодирования.

Просто проанализируйте документ, как и любой другой, и вы увидите, что секции CDATAавтоматически декодируются для вас.

В случае вашего примера SAX данные будут переданы вам методом characters.

...