public class ParseDom4j {
public static void main(String[] args) {
String xml = "<root>\n" +
" <part id=\"01\" name=\"选项一\">\n" +
" <name>我是徐茅山</name>\n" +
" <age>今年20岁</age>\n" +
" <sex>男</sex>\n" +
" </part>\n" +
" <part id=\"02\" name=\"选项二\">\n" +
" <name>我是李逍遥</name>\n" +
" <age>今年22岁</age>\n" +
" <sex>男</sex>\n" +
" </part>\n" +
"</root>\n" +
"\n";
// 执行dom4j解析xml方法
//parseDom4j(new File("D:\\Users\\lvxy\\Desktop\\work\\1.xml"));
ByteArrayInputStream inputStream = new ByteArrayInputStream(xml.getBytes());
parseDom4j(inputStream);
}
public static void parseDom4j(InputStream inputStream) {
try {
// 创建一个SAXReader解析器
SAXReader reader = new SAXReader();
// 读取xml文件,转换成Document结点
Document doc = reader.read(inputStream);
// 递归打印xml文档信息
StringBuffer buffer = new StringBuffer();
parseElement(doc.getRootElement(), buffer);
System.out.println(buffer.toString());
} catch (DocumentException e) {
e.printStackTrace();
}
}
public static void parseElement(Element element, StringBuffer buffer) {
buffer.append("<"+element.getName());
List<Attribute> attrs = element.attributes();
if (attrs != null) {
for (Attribute attr : attrs) {
buffer.append(" "+attr.getName()+"=\""+attr.getValue()+"\"");
}
}
buffer.append(">");
Iterator<Node> iterator = element.nodeIterator();
while (iterator.hasNext()) {
Node node = iterator.next();
if (node instanceof Element) {
Element eleNode = (Element) node;
parseElement(eleNode, buffer);
}
if (node instanceof Text) {
Text text = (Text) node;
buffer.append(text.getText());
// 非空校验一下 然后翻译 再塞回去
}
if (node instanceof CDATA) {
CDATA dataNode = (CDATA) node;
buffer.append(dataNode.getText());
}
if (node instanceof Comment) {
Comment comNode = (Comment) node;
buffer.append(comNode.getText());
}
}
buffer.append("</"+element.getName()+">");
}
}
dom4j解析xml节点
最新推荐文章于 2023-12-03 23:03:04 发布