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;
}