Проблема Saxparsing - PullRequest
       5

Проблема Saxparsing

0 голосов
/ 11 августа 2011

Я использую SaxParsing для анализа ответа от веб-службы.Здесь я даю XML-файл, который я получаю

<HelpDesk xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<entry>
<id>1</id>
<parent>0</parent>
<name>
<![CDATA[ Equipment Tab ]]>
</name>
<description>
<![CDATA[ ]]>
</description>
<content>
<![CDATA[
There are several ways equipment can be added to a booking. Equipment can be added through the tree view of the inventory. It can be added by searching the product code or description. Once equipment is selected for the booking adjustments can be made to&nbsp;the quantity, price, and discount&nbsp;for each line of equipment. Specific pricing models on a per line basis can be created. Discounts can be applied to the entire booking. This will not conflict with any line item discounts. If a discount on the line already exists the overall booking discount will skip the line amount and apply to other applicable lines. Once pricing is complete taxes can be applied as required. Multiple tax rates can be applied by clicking on a tax box. Operator discount authorizations are controlled by the individual operator and not at the group level.
]]>
</content>
<rating>80</rating>
<votes>36</votes>
<views>169</views>
<private>0</private>
<status/>
</entry>
</HelpDesk>

Проблема в том, что я не получаю полное содержимое в теге содержимого.Кто-нибудь может дать код для разбора этого xml

Спасибо

Ответы [ 2 ]

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

Вам следует инициализировать StringBuffer в методе startElement () и добавить строку, полученную в методе characters (), в буфер строк

 public void startElement(String namespaceURI, String localName,
          String qName, Attributes atts) throws SAXException {
         if(localName.equals("content")){
            sb= new StringBuffer();

    }
 }

public void characters(char ch[], int start, int length) {
    if(tagName.equals("content")){
        sb.append(new String(ch, start, length));
        //use this string buffer where you want
}
1 голос
/ 11 августа 2011

Используйте это в символьном методе вашего xml-обработчика

public void characters (char ch[], int start, int length) {
    if (buf!=null) {
        for (int i=start; i<start+length; i++) {
            buf.append(ch[i]);
        }
    }
}

Где buf - построитель строк.

...