-
获取xml文件内容的 四种解析方式:DOM SAX DOM4J JDOM DOM、SAX :java 官方方式,不需要下载jar包 DOM4J、JDOM :第三方,需要网上下载jar包 DOM使用步骤: 准备工作 1、创建一个DocumentBuilderFactory的对象 DocumentBuilderFactory dbf = DocumnetBuilderFactory.instance(); 2、创建一个DocumentBuilder的对象 DocumentBuilder db = dbf.newDocumentBuilder(); 3、通过DocumentBuilder对象的parse方法加载xml文件到当前项目 Document document = db.parse("*.xml");查看全部
-
1.xml(Extensible Markup Language)可扩展标记语言的主要作用: 1)主要是实习不同功能直接的连接(比如订票与 支付) 2)不同系统之间的连接 3)数据共享 2.一种定义文档格式的语言 语法结构: 1)declaration(声明) <? ?> <? xml version="1.0" encoding="UTF-8"?> 2)Tag(标记)<></> <username> 内容</username> 3)Attribute(属性) <username sex="male"></username> sex="male"即为属性 也可以把属性改为子元素 <username> 张三 <sex>male</sex> </username> 4)注释 <!-- --> eg:<!--这是一个注释的例子-->查看全部
-
1.解析子节点,book标签之间的所有内容都看成是子节点 NodeList childNodes=book.getChildNodes() 2.遍历childNodes获取每个节点的节点名和节点值 childNodes的getLength()方法返回节点的个数(空格与换行字符看成为一个文本节点,标签与结束标签看成一个元素节点) 3.通过NodeList的item()获取子节点属性 Node childnode=childNodes.item(i); 4.用Node类型的getNodeName()方法就可以获取节点名 String name=childnode.getNodeName(); 通过Node类的getNodeType()来区分text类型的node以及elment类型的node if(childnode.getNodeType==Node.ELEMENT_NODE) {System.out.println(name)} 4.获取了element类型节点的节点值 String value=childnode.getFirstChild().getNodeValue(); 或String value=childnode.getTextContent() 1.nodeValue的返回值为null,而且标签之间的文本被看做是该标签的子节点。因此用Node的getFirstChild()此时获取的子节点属性,再getNodeValue()获取该值,或者用getTextContent()直接获取节点值 2.getFirstChild()与getTextContent()区别 例如:<name><a>aa</a>老人与海</name>//该节点还存在其他子节点并且有节点值 则用getFirstChild().getNodeValue()时,返回:null,因为获取的子节点仍然是element类型的; 用Node的getTextContent(),返回:aa老人与海查看全部
-
常用的节点类型查看全部
-
如果不知道节点的属性个数以及属性名,则采用for循环 若知道可以使用Element对象查看全部
-
DOM方式解析xml查看全部
-
1.xml(Extensible Markup Language)可扩展标记语言的主要作用: 1)主要是实习不同功能直接的连接(比如订票与 支付) 2)不同系统之间的连接 3)数据共享 2.一种定义文档格式的语言 语法结构: 1)declaration(声明) <? ?> <? xml version="1.0" encoding="UTF-8"?> 2)Tag(标记)<></> <username> 内容</username> 3)Attribute(属性) <username sex="male"></username> sex="male"即为属性 也可以把属性改为子元素 <username> 张三 <sex>male</sex> </username> 4)注释 <!-- --> eg:<!--这是一个注释的例子-->查看全部
-
xml应用于不同平台系统程序之间的信息交流查看全部
-
1.xml(Extensible Markup Language)可扩展标记语言的主要作用: 1)主要是实习不同功能直接的连接(比如订票与 支付) 2)不同系统之间的连接 3)数据共享 2.一种定义文档格式的语言 语法结构: 1)declaration(声明) <? ?> <? xml version="1.0" encoding="UTF-8"?> 2)Tag(标记)<></> <username> 内容</username> 3)Attribute(属性) <username sex="male"></username> sex="male"即为属性 也可以把属性改为子元素 <username> 张三 <sex>male</sex> </username> 4)注释 <!-- --> eg:<!--这是一个注释的例子-->查看全部
-
JUnit是Java提供的一种进行单元测试的自动化工具。测试方法可以写在任意类中的任意位置。使用JUnit可以没有main()入口进行测试。 DOM4J在灵活性和对复杂xml的支持上都要强于DOM DOM4J的应用范围非常的广,例如在三大框架的Hibernate中是使用DOM4J的方式解析文件的。 DOM是w3c组织提供的一个官方解析方式,在一定程度上是有所应用的。 当XML文件比较大的时候,会发现DOM4J比较好用 1.JUnit:Java提供的单元测试;@Test注解;采用JUnit不需要程序入口main方法 2.性能测试结果:几kB的xml文件;建议使用DOM4J解析 DOM-33ms SAX-6ms JDOM-69ms DOM4J-45ms 工程右键build path --Add library--JUnit单元测试 --version:JUnit4 DOM:33,SAX:6 JDOM:69;DOM4J:45 DOM 有可能溢出 多使用DOM4J查看全部
-
基础方法:DOM(平台无关的官方解析方式)、SAX(基于事件驱动的解析方式) 扩展方法:JDOM、DOM4J(在基础的方法上扩展出的,只有在java中能够使用的解析方法) DOM:一次性将整个xml文件加载到内存中,形成DOM树 优点:形成了树结构,直观好理解,代码更容易编写 解析过程中树结构保留在内存中,方便修改 缺点:当xml文件较大时,对内存消耗比较大,容易影响解析性能并造成内存溢出 SAX:逐条语句判断解析 优点:采用事件驱动模式,对内存消耗比较小 适用于只需要处理xml中数据时 缺点:不易编码 很难同时访问同一个xml中的多处不同数据 JDOM:仅使用具体类而不使用接口 API大量使用了Collections类 DOM4J:JDOM的一种智能分支,它合并了许多超出基本XML文档表示的功能 DOM4J使用接口和抽象基本类方法,是一个优秀的Java XML API 具有性能优异、灵活性好、功能强大和极端易使用的特点 是一个开放源代码的软件查看全部
-
解析子节点的信息 Iterator itt = book.elementIterator(); while(itt.hasNext()){ Element bookchild = (Element)itt.next(); bookchild.getName(); bookchild.getStringValue(); }查看全部
-
DOM4J 解析 xml 文件 1、创建一个 SAXReader 对象 SAXReader saxReader = new SAXReader(); 2、将 xml 文件加载到 SAXReader 中,并获取 document 对象 Document document = saxReader.read(fileName); 3、通过 getRootElement() 获取根节点元素 Element employeeRoot = document.getRootElement(); 4、通过 elementIterator() 获取子节点元素,返回 Iterator 返回迭代器 Iterator eles = eleRoot.elementIterator(); 5、通过 while 遍历迭代器 while(eles.hasNest()){ Element ele = (Element)eles.next();} 6、获取属性节点类似 JDOM 解析 List<Attribute> attrs = ele.attributes(); 7、获取元素节点名、值 ele.getName() ele.getStringValue()/ele.getText() 8、获取属性节点名、值 ele.getName() ele.geValue()查看全部
-
JDOM使用过程中JAR包的引用 我们的项目中直接配置build path指定的jar包如果是在我们PC的硬盘某个路径,那么在日后导出项目时候,项目中是没有jar包的。 我们只能在我们的项目下建立一个lib文件夹将所需jar包复制进去,再进行build path的配置即可。查看全部
-
在 JDOM 中存储 Book 对象 private static ArrayList<Book> booksList = new ArrayList<Book>(); ... // 遍历attrList(针对不清楚book节点下属性的名字及数量) for (Attribute attr : attrList) { // 属性名 String attrName = attr.getName(); // 属性值 String attrValue = attr.getValue(); System.out.println("属性名:" + attrName + "属性值:" + attrValue); if (attrName.equals("id")) { bookEntity.setId(attrValue); } } // 对book节点的子节点的节点名及节点值的遍历 List<Element> bookChilds = book.getChildren(); for (Element child : bookChilds) { System.out.println("节点名:" + child.getName() + "节点值:" + child.getValue()); if (child.getName().equals("name")) { bookEntity.setName(child.getValue()); } else if (child.getName().equals("author")) { bookEntity.setAuthor(child.getValue()); } ...//else if(){}与上面类似 booksList.add(bookEntity); bookEntity = null; syso.booksList.size(); syso.booksList.get(0).getId(); syso.booksList.get(0).getName(); ...查看全部
举报
0/150
提交
取消