A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 迦南 中级黑马   /  2014-8-24 23:59  /  942 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

DOM4J解析XML文档
Dom4j是一个简单,灵活的开放源代码的库,Dom4j是由早期开发JDOM的人分离出来而后独立开发的。与JDOM不同的是,dom4j使用接口和抽象基类,虽然Dom4jAPIxi相对要复杂一些,但它提供了比JDOM更好的灵活性
Dom4j是一个非常优秀的java XML API.具有性能优异,功能强大和极易使用的特点。现在很多软件采用的Dom4j,例如Hibernate,包括sun公司自己的JAXM也用了Dom4j
使用Dom4j开发,需下载dom4j相应的jar文件
xpath表达式
document.selectSingleNode("//user[@username='"+username+"'and @password='"+password+"']");
XML Schema也是一种用于定义和描述XML文档结构与内容的模式语言,其出现是为了克服DTD的局限性
Xml Schema VS DTD
XML Schema符合XML语法结构
DOM SAXXML API很容易解析出XMLSchema文档中的内容
XML Schema对名称空间支持得非常好。
XML SchemaXML DTD支持更多的数据类型,并支持用户定义新的数据类型
XML Schema定义约束的能力非常强大,可以对XML实例文档作出细致的语义限制
XML Schema不能像DTD一样定义实体,比DTD更复杂,但XMLSchema现在已经是W3c组织的标准,它正逐步取代DTD
XML Schema文件自身就是一个XML文件,但它的扩展名通常为xsd
一个XML Schema文档通常称之为模式文档(约束文档),遵循这个文档书写的xml文件称之为实例文档
xml文件一样,一个xml Schema文档也必须有一个根节点,但这个根节点的名称为Schema
编写了一个Xml Schema约束文档后,通常需要把这个文件中声明的元素绑定到一个URI地址上,在XML Schema技术中有一个专业术语来描述这个过程,即即把XML Schema文档声明的元素绑定到一个名称空间上,以后XML文件就可以通过这个URI(即名称空间
来告诉解析引擎,xml文档中编写的元素来自哪里,被谁约束。
名称空间的概念
XML Schema中,每个约束模式文档都可以被赋以一个唯一名称空间,名称空间用一个唯一的URI(Unifoem Resource Identifier,统一资源标识符)表示。在XML文件中书写标签时,可以通过名称空间声明(xmlns),来声明当前编写的标签来自哪个Schema约束文档。如
<itcast:书架xmlns:itcast="http;//www.itcast.cn">
   <itcast:>......</itcast:>
</itcast:书架>
此处使用itcast来指向声明的名称,以便于后面对名称空间的引用
注意:名称空间的名字语法容易让人混淆,尽管以http://k开始那个URLb并不指向一个包含模式定义的文件。事实上,这个URLhttp://www.itcast.cn根本没有指向任何文件,只是一个分配的名字。
为了在一个XML文档中声明它所遵循的Schema文件的具体位置,通常需要在Xml文档中的根节点中使用schemaLocation属性来指定,例如:
<itcast:书架xmlns:itcast="http://www.itcast.cn">
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.itcast.cn  book.xsd"
schemaLocation此属性有两个值,第一个值是需要使用的命名空间,第二个值是供命名空间使用的XML Schema的位置,两者之间用空格分隔
注意,在使用schemaLocation属性时,也需要指定该属性来自哪里
基本格式:
xmlns="URI"
举例:
<书架xmlns="http://www.it315.org/xmlbook/schema">
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.itcast.cn  book.xsd"
<>
   <书名>javaScript</书名>
   <作者>张孝祥</作者>
   <售价>28.0</售价>
</>
</书架>
平面图形题(二维数组)
public static void main(String[] args){
   int num = 9;
   int height = num/4+1;
   int width = num;
   int arr[][] = new int[height][width];
   
   int x =height-1;
int y = 0;
   boolean order = false;
   for(int i=1;i<=num;i++){
       arr[x][y] = i;
        y++;
       if(!order){
           x--;
       }
       if(order){
           x++;
       }
       if(x<0){
           order =true;
           x = x+2;
       }
       if(x>2){
           order = false;
           x = x-2;
       }
    }
   for(int i=0;i<arr.length;i++){
      for(int z=0;z<arr.length;z++){
          if(arr[z]==0){
               System.out.print(" ");
          }else{
               System.out.print(arr[z]);
          }
      }
      System.out.println();
    }
}

评分

参与人数 1黑马币 +5 收起 理由
天黑偷牛 + 5 赞一个!

查看全部评分

3 个回复

倒序浏览
不错不错,总结的很好

点评

你这个写的很好,那一个写的让人看着不太用心  发表于 2014-8-26 12:01
我自己写的东西,关于DOM解析的,为何把我吹走了!!!  发表于 2014-8-26 11:09
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马