XML

XML
1. 一二三]]>  //将 这样的标签指定成文本
2. DTD
dtdtest.dtd






!ELEMENT 表示有什么元素
#PCDATA   表示只能是普通文本

a.xml
<?xml version="1.0" encoding="UTF-8" ?>
        SYSTEM 本地,PUBLIC 网络


葵花宝典书名>
刘刘3作者>
1200售价>

书>

葵花宝典2书名>
刘刘4作者>
2200售价>

书>

葵花宝典3书名>
刘刘5作者>
3200售价>

书>
书架>

EMPTY 标签之间为空
出版社 CDATA #REQUIRED 
ISBN CDATA #MPLIED
>
CDATA 表示属性的取值为普通的文本
枚举   (一|二)
ID 表示属性的聚会不能重复

#REQUIRED:表示该属性必须出现 
#IMPLIED:表示该属性可有可无
#FIXED: 表示属性的取值是一个固定值
直接值:表示属性的取值为该默认值
3. DOM解析
DocumentbuilderFactory dbf = DocumentbuilderFactory.newInstance();
Documentbuilder db = dbf.newDocumentbuilder();
document document = db.parse("/src/books.xml");
NodeList nl = document.getElementsbyTagName("作者");
Node node = n1.item(1);
System.out.println(node.getNodeValue); //作者的值
System.out.println(node.getFirstChild().getNodeValue); //作者的子节点的值

4. sax解析

5. junit 单元测试
@Test
public void test1(){
int result = mm.add(10,20);
Assert.assertEquals(40,result);
}

@Test(excepted=java.lang.Exception.class)   //期望出异常,如果出现异常就正确,通过
public void test1(){
int result = mm.divide(10,20);
Assert.assertEquals(40,result);
}

@Test(timeout=1)  //程序运行1毫秒之内,否则不能通过


@Befor  在@Test的块执行之前之前被调用
@After  在@Test的块执行之后之后被调用
@BeforeClass 如果class中有多个@Test 则只调用一次,这里的方法只能是static
@AfterClass 如果class中有多个@Test 则只调用一次,这里的方法只能是static

5. dom4j 解析  要导入jar包dom4j-1.6.1.jar
SAXReader sa = new SAXReader();
Document doc = sa.read("src/LocList.xml");
Element root = doc.getRootElement();
List es = root.elements();
//Element e = es.get(3);
//Element firstCity = root.element("City");
//System.out.println(firstCity.elementText("Name"));  //取City下第一个Name标签的名字
for(Element ele:es){
treeWalk(ele);
}

OutputFormat format = OutputFormat.createPrettyPrint();
//OutputFormat format = OutputFormat.createCompactFormat();  //这个没有回车换行
format.setEncoding("UTF-8");
XMLWriter writer = new XMLWriter(new FileOutputStream("src/LocList.xml"),format);
writer.write(doc);
writer.close();

6. Xpath  dom4j要用,要导包 jaxen-1.1-beta-6.jar
/AA/BB   按标签的层级关系取标签
/AAA/BBB[1]   如果有多个取第一个
/AAA/BBB[last()]   如果有多个取最后一个
//AA     没有层级关系 ,所有的AA标签都取
//@id      指所有的 id 属性

Node n = doc.selectSingLeNode("//City[last()]");
System.out.println(n.getText());


















来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29798713/viewspace-1670641/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29798713/viewspace-1670641/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值