使用SAXParser进行Java XML解析

使用SAXParser进行Java XML解析,java,xml,jakarta-ee,saxparser,Java,Xml,Jakarta Ee,Saxparser,我有一个API。当我们请求时,它将生成XML作为响应数据 以下是描述字段的API响应: <parameter> <name>description</name> <value>Description Description</value> </parameter> 描述 描述 下面是解析XML文件(SAXPraser)的代码 公共类WorkOrderDataHandler扩展了DefaultHandler{ 公共Wor

我有一个API。当我们请求时,它将生成XML作为响应数据

以下是描述字段的API响应:

<parameter>
<name>description</name>
<value>Description Description</value>
</parameter>

描述
描述
下面是解析XML文件(SAXPraser)的代码

公共类WorkOrderDataHandler扩展了DefaultHandler{
公共WorkOrderDataHandler(){
parameterList=新的ArrayList();
contentsOfTheCurrentTag=新的StringBuilder();
}
public void startElement(字符串uri、字符串localName、字符串qName、,
属性)引发SAX异常{
if(qName.equalsIgnoreCase(“详细信息”)){
ticketData=新的ticketTintermediateData();
}
if(qName.equalsIgnoreCase(“参数”)){
参数=新参数();
}
}
公共void endElement(字符串uri、字符串localName、字符串qName)
抛出SAX异常{
int length=contentsOfTheCurrentTag.length();
if(qName.equalsIgnoreCase(“名称”)){
参数.setName(contentsOfTheCurrentTag.toString().trim());
}
if(qName.equalsIgnoreCase(“值”)){
parameter.setValue(contentsOfTheCurrentTag.toString().trim());
}
if(qName.equalsIgnoreCase(“参数”)){
parameterList.add(参数);
} 
if(qName.equalsIgnoreCase(“参数”)){
if(“workorderid.equals(parameter.getName())){
ticketData.setIt360ticketid(Integer.parseInt(参数
.getValue().trim());
} 
else if(“description”.equals(parameter.getName())){
System.out.println(“Handler desc”+parameter.getValue());//DescriptionDescription
ticketData.setDescription((parameter.getValue());
}
}
contentsOfTheCurrentTag.delete(0,长度);
}
公共无效字符(字符ch[],整数开始,整数长度)
抛出SAX异常{
contentsOfTheCurrentTag.append(ch,start,length);
}
}

输出: 当我试图解析描述字段时。我得到的输出是DescriptionDescription


任何人都可以提供帮助

您在DefaultHandler中重写的是什么方法?endelement和startelement方法无效字符(char ch[],int start,int length)抛出SAXException{contentsOfTheCurrentTag.append(ch,start,length);}剩余字段正确获取。您可以发布更完整的代码吗?
public class WorkOrderDataHandler extends DefaultHandler {

        public WorkOrderDataHandler() {
        parameterList = new ArrayList<Parameter>();

        contentsOfTheCurrentTag = new StringBuilder();
    }


      public void startElement(String uri, String localName, String qName,
            Attributes attributes) throws SAXException {
        if (qName.equalsIgnoreCase("Details")) {
            ticketData = new TicketInterMediateData();
        }
        if (qName.equalsIgnoreCase("parameter")) {
            parameter = new Parameter();
        }

    }

          public void endElement(String uri, String localName, String qName)
            throws SAXException {
        int length = contentsOfTheCurrentTag.length();
        if (qName.equalsIgnoreCase("name")) {
            parameter.setName(contentsOfTheCurrentTag.toString().trim());
        }

        if (qName.equalsIgnoreCase("value")) {
            parameter.setValue(contentsOfTheCurrentTag.toString().trim());
        }

        if (qName.equalsIgnoreCase("parameter")) {
            parameterList.add(parameter);
        } 

                 if (qName.equalsIgnoreCase("parameter")) {
            if ("workorderid".equals(parameter.getName())) {
                ticketData.setIt360ticketid(Integer.parseInt(parameter
                        .getValue().trim()));
            } 

                  else if ("description".equals(parameter.getName())) {
                System.out.println("Handler desc"+ parameter.getValue());//DescriptionDescriptionÂ
            ticketData.setDescription((parameter.getValue()));
                    }

             }
         contentsOfTheCurrentTag.delete(0, length); 
            }


 public void characters(char ch[], int start, int length)
            throws SAXException {
        contentsOfTheCurrentTag.append(ch, start, length);
    }