当前位置: 代码迷 >> Ajax >> dom4j解析XML,该怎么处理
  详细解决方案

dom4j解析XML,该怎么处理

热度:647   发布时间:2012-03-12 12:45:33.0
dom4j解析XML
Document xmlDoc = new XPPReader().read(new ByteArrayInputStream(xml.getBytes()));

  Multiple annotations found at this line:
- The method read(InputStream) from the type XPPReader refers to the missing type 
XmlPullParserException
- The type org.gjt.xpp.XmlPullParserException cannot be resolved. It is indirectly 
referenced from required .class files

------解决方案--------------------
一楼的意思该是这样吧?
Java code
Document xmlDoc = (Document )new XPPReader().read(new ByteArrayInputStream(xml.getBytes()));

------解决方案--------------------
Java code

  Document doc=DocmentHelper.parse(xml);//这样不可以吗?

------解决方案--------------------
贴两段dom4j操作xml代码供参考啊,别笑话啊,只希望对LZ有帮助!个人感觉dom4j的API操作还是很方便与容易的。
1、dom4j解析XML
Java code

/**
     * 解析二维简单格式的信息类型内容格式定义XML
     * 
     * @param xmlSchema
     * @return
     */
    private SimpleMultiFieldDefine parseSimpleXmlSchemaByXmlString(String xmlSchema) {
        Document doc = null;
        SimpleMultiFieldDefine simpleDefine = null;
        List<SimpleFieldPojo> allFields = null;
        try {
            // 将字符串转换成文档对象
            doc = DocumentHelper.parseText(xmlSchema);
            // 获取根节点
            Element root = doc.getRootElement();
            simpleDefine = new SimpleMultiFieldDefine();

            // 获取消息类型节点
            String typeId = root.element(SystemConstants.XML_FIELDNAME_TYPEID).getTextTrim();
            simpleDefine.setTypeId(typeId);

            // 获取消息名称节点
            String typeName = root.element(SystemConstants.XML_FIELDNAME_TYPENAME).getTextTrim();
            simpleDefine.setTypeName(typeName);

            // 循环遍历获取所有field字段
            allFields = new ArrayList<SimpleFieldPojo>();
            for (Iterator fields = root.elementIterator(SystemConstants.XML_FIELDNAME_FIELD); fields.hasNext();) {
                Element element = (Element) fields.next();
                String field_id = element.elementTextTrim(SystemConstants.XML_FIELDNAME_FIELD_ID);
                String field_name = element.elementTextTrim(SystemConstants.XML_FIELDNAME_FIELD_NAME);
                String field_type = element.elementTextTrim(SystemConstants.XML_FIELDNAME_FIELD_TYPE);

                SimpleFieldPojo field = new SimpleFieldPojo(field_id, field_name, field_type);
                allFields.add(field);
            }

            simpleDefine.setAllFields(allFields);
        } catch (DocumentException e) {
            return null;
        }
        return simpleDefine;
    } 
  相关解决方案