频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

6.4 Element节点

作者: 耿祥义 出处:清华大学出版社  (  ) 砖  (  ) 好  评论 ( ) 条  进入论坛
更新时间:2007-04-26 10:51
关 键 词:XML  XML基础教程
阅读提示:本书分为8章。第6章详细讲解DOM解析器,特别对怎样使用DOM生成XML文件给予了较详细的讲解。本节是Element节点
6.4  Element节点
Element节点是Document节点的最重要的子孙节点,因为被解析的XML文件的标记对应着这样类型的节点。表示Element节点的常量是Node.ELEMENT_NODE,一个节点用
short getNodeType()
方法返回的值如果等于Node.ELEMENT_NODE,那么该节点就是Element节点。
Element节点经常使用下列方法获取和该节点相关的信息。
String getTagName() 返回该节点的名称,该名称就是此节点对应的XML中的标记名称。
String getAttribute(String name) 返回该节点中参数name指定的属性值,该属性值是此节点对应的XML标记中的属性值。
NodeList getElementsByTagName(String name) 返回一个NodeList对象,该对象由当前节点的Element类型子孙节点组成,这些子孙节点的名字由参数name指定。
NodeList getElementsByTagNameNS(String namespaceURI,String localName)返回一个NodeList对象,该对象由当前节点的Element类型子孙节点组成,这些子孙节点的名字由参数localName指定,名称空间由参数namespaceURI   指定。
boolean hasAttribute(String name) 判断当前节点是否有名字是参数name指定的属性。
boolean hasAttributeNS(String namespaceURI, String localName)  判断当前节点是否有名字是参数name指定、名称空间是namespaceURI指定的属性。
注意:getTagName()方法是Element接口中的方法,getNodeName()方法是Element接口从Node接口继承的方法。对于Element节点,getTagName()和getNodeName()返回的都是Element节点对应的XML文件中标记的名称。
下面的例子2给出了XML文件和解析该文件的Java源文件,在Java源文件中, Element节点使用常用方法获得XML文件的有关数据,效果如图6.3所示。
图6.3  Elment节点的常用方法

例子2(效果如图6.3所示)
Cha6_2.xml
<?xml  version="1.0"  encoding="UTF-8"  ?>
<图书摘要>
<Java基础教程 ISBN="7302091420">
Java是一门很优秀的语言,具有平台无关等特点
</Java基础教程>
<JSP基础教程 ISBN="7302096066">
JSP是Sun公司推出的动态网页技术标准
</JSP基础教程>
<XML基础教程 ISBN="7802096565">
XML是万维网联盟定义的一种语言
</XML基础教程>
</图书摘要>
JAXPTwo.java
import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
public class JAXPTwo
{
public static void main(String args[])
{
try {
DocumentBuilderFactory  factory=
DocumentBuilderFactory. newInstance();
DocumentBuilder  builder= factory. newDocumentBuilder();
Document  document= builder. parse(new File("Cha6_2.xml")) ;
Element root=document.getDocumentElement() ;
String  rootName=root.getNodeName();
System.out.println("XML文件根节点的名字:"+rootName);
NodeList nodeList=root.getChildNodes();
int size=nodeList.getLength();
for(int k=0;k<size;k++)
{
Node node=nodeList.item(k);
if(node.getNodeType()==Node.ELEMENT_NODE)

Element elementNode=(Element)node;
String name=elementNode.getNodeName();
String id=elementNode.getAttribute("ISBN");
String content=elementNode.getTextContent();
System.out.print(name);
System.out.print(id);
System.out.println(":"+content);
}
}
}          
catch(Exception e)
{
System.out.println(e);
}
}
}
在上面的例子2中,解析器获得的Document节点有一个Element子节点root,该节点对应XML文件的根标记。
root节点一共有7个子节点,其中有3个Element节点、4个Text节点。3个Element节点分别对应XML文件中根标记的3个子标记:
<Java基础教程…> …</ Java基础教程>
<JSP基础教程…> …</ JSP基础教程>
<XML基础教程…> …</XML基础教程>
4个Text节点分别对应XML文件中根标记和4个子标记之间形成的4个空白区:
“<图书摘要>”与“<Java基础教程 ISBN="7302091420">”之间的空白区,
“</Java基础教程>”与“<JSP基础教程 ISBN="7302096066">”之间的空白区,
“</JSP基础教程>”与“<XML基础教程 ISBN="7802096565">”之间的空白区,
“</XML基础教程>”与“</图书摘要>”之间的空白区。
这些空白区都是为了使得XML文件看起来更美观而形成的,但解析器并不知道这一点,所以解析器仍然认为它们是有用的文本数据(由空白类字符组成)。另外,3个Element节点各自都有一个Text节点,分别对应着“Java基础教程”、“JSP基础教程”和“XML基础教程”标记中的文本数据。
解析器获得的Document节点及子孙节点的示意图如图6.4所示
图6.4  Document节点的子孙节点
【责任编辑:雪花 TEL:(010)68476606-8007】

回书目   上一节   下一节
发表
查看
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
名称:Vista精品应用黄皮书
简介:《Vista精品应用黄皮书》囊括了Vista的各方面内容。此次的精简版,是将里面的内容做了提取,便于用户下载和使用。内容包含了各种Vista的安装与实施、技巧与解析以及各种Vista相关学习文档和相关软件的安全下载。该电子书是了解和应用Vista人员必备的工具手册,并且也是第一本
名称:2006中国IT论坛精品集合
简介:本书由“51CTO论坛推广联盟”制作完成。书中所有内容均来自各联盟成员的论坛(网站)。制作本书的目的是为了集中大家的优势资源,将更多更精彩的内容带给广大技术爱好者。本书是联盟成立以来制作的第一本书。
关键字阅读
频道精选
主编信箱 热线:010-66476606 告诉我们您想看的:专题 文章
关于我们 | 诚聘英才 | 联系我们 | 网站大事 | 意见反馈 | 网站地图
Copyright©2005-2007 51CTO.COM 版权所有