在JSP文件中解析XML文件,并取出其中的值。XML数据是高度结构化的数据,它是以每个节点作为单位,通过节点之间的隶属、并列等关系组织在一起。这样的结构使得数据封装很健壮,而且易于扩展。
在17.2.1小节中已经涉及到DOM树的概念。由于DOM可以将XML映射成一个树结构,因此使用DOM树可以方便的解析XML数据。使用DOM树,首先需要生成一个Document对象,它是对XML数据进行封装;然后需要理解DOM节点的含义。节点的实现接口是org.w3c.dom.Node,它是数据节点类型及操作此数据节点方法的一个集合。Node节点的主要类型有DOCUMENT_NODE节点类型、ELEMENT_NODE节点类型、TEXT_NODE节点类型等。通过使用Node接口可以实现对节点名称及其值的存取动作。
Node接口常用的方法有以下几种:
getNodeName():返回节点名称。
getNodeValue():返回节点值(针对TEXT_NODE节点类型等)。
getNodeType() :返回节点类型。
getParentNode():返回父节点Node对象。
getChildNodes():返回一个子节点集合NodeList对象。
getAttributes():返回节点的属性集合NamedNodeMap对象。
getOwnerDocument():返回Document对象。
getFirstChild():返回第一个子节点Node对象。
getLastChild():返回最后一个子节点Node对象。
使用JSP解析XML时,首先将XML文件导入内存中,通过DocumentBuilderFactory生成一个DOM解析器DocumentBuilder,然后使用此解析器从XML数据中生成一个Document对象封装。
在Java的应用程序中,通常XML数据文件要解析成一个Java对象,在使用JSP解析XML时,同样需要把XML中的数据解析成Java对象。
DOM中的节点是最基本的操作单元。每个节点对应的是XML数据中的对象。节点按照在树中的出现位置也分为不同类型。Node节点代表了XML数据中的根节点,它是解析XML数据的起点。通过根节点,可以遍历出它的所有子节点,然后再针对每个子节点解析出不同的内容。
通过DocumentBuilder解析输入流获得的Document对象是文档节点类型。通过Node的getChildNodes方法可以获得根节点。
Element的Node节点代表了XML中的元素对象。该元素封装了一个子节点对象。通过访问该类型节点,可以获取到子节点信息。
Attribute的Node节点代表了XML数据中节点的属性信息。此对象类型可以解析出XML数据中某个节点的属性集,然后对这个属性集进行遍历,分别获取属性的名称及其值。
Text的Node节点代表了XML数据中节点的文本信息。此对象类型封装了节点所存储的具体信息。每个元素节点的子节点为文本类型节点,如果存在文本的话,也需要通过getChildNodes()方法获取文本节点,此时可以通过getNodeValue方法得到文本值。 本文链接地址: 如何使用JAVA(JSP)解析XML文件方法步骤