汴京城下君 2023-11-21 22:15 采纳率: 81.8%
浏览 10

java-xml解析遇到报错

java的xml解析,遇到以下问题,不知道如何解决

img

package xml;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.io.InputStream;
import java.util.Iterator;
import java.util.List;

public class XmlParser {
    public static void main(String[] args) throws DocumentException {
        SAXReader reader = new SAXReader();
        //通过类的字节码对象获取一个给定资源并将该资源读取到流的通道
        InputStream is = XmlParser.class.getResourceAsStream("f.xml");
        //SAX 读取器从通道中读取一个文档对象
        Document document = reader.read(is);
        //获取文档的根元素,因为XML文档只会有一个根元素
        Element root = document.getRootElement();
        //获取根元素标签名
        String tagname = root.getQualifiedName();
        System.out.println("xml根标签名:" + tagname);
//        //获取根元素的子元素
//        List<Element> elements  = root.elements();
//        for(Element element:elements){
//            //获取元素标签名
//            String tagname = element.getQualifiedName();
//            System.out.println(tagname);
//            //获取属性
//            List<Attribute> attributes = element.attributes();
//            for(Attribute attribute:attributes){
//                //获取属性名
//                String attrname = attribute.getName();
//                //获取属性值
//                String value = attribute.getValue();
//                System.out.println("属性:"+attrname+"-->"+value+"\t");
//            }
//            System.out.println();
//    }
        Iterator<Element> iterator = root.attributeIterator();
        while(iterator.hasNext()){
            //获取元素标签名
            Element element = iterator.next();
            String name = element.getQualifiedName();
            System.out.println(name);
            //获取属性
            List<Attribute> attributes = element.attributes();
            for(Attribute attribute:attributes){
                //获取属性名
                String attrname = attribute.getName();
                //获取属性值
                String value = attribute.getValue();
                System.out.println("属性:"+attrname+"-->"+value+"\t");
            }
            System.out.println();
        }
    }
}


<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE students SYSTEM "student.dtd">
<students>
    <!--    <student>-->
    <!--        <name>张三</name>-->
    <!--        <age>20</age>-->
    <!--        <sex>男</sex>-->
    <!--    </student>-->
    <student id="1" name="张三" age="20" sex="男" country="中国" />
    <student id="2" name="张三" age="20" sex="男" />
    <student id="3" name="张三" age="20" sex="男" />
</students>


<!ELEMENT students (student*) >
<!--<!ELEMENT student (name,age,sex) ANY>-->
<!--<!ELEMENT name (#PCDATA)>-->
<!--<!ELEMENT age (#PCDATA)>-->
<!--<!ELEMENT sex (#PCDATA)>-->
<!ELEMENT student EMPTY>
<!ATTLIST student id ID #REQUIRED>
<!ATTLIST student name CDATA>
<!ATTLIST student age CDATA>
<!ATTLIST student sex(男|女|其他) #IMPLIED>
<!ATTLIST student country(中国) CDATA #FIXED>

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-22 11:22
    关注

    【相关推荐】




    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 11月21日