Xml与Java

Xml与Html的区别

尽管Xml与Html都是标准通用标记语言(SGML)的衍生语言,但还是存在不少区别:

  • Xml对大小写很敏感,例如<H1><h1>是不同的Xml标签
  • Html在能够分清段落结尾时候结束标签(</p></li>)可以省略,但是Xml中绝对不可以省略标签
  • 在Xml中,属性值的引号是必须要有的,但Html中是可有可无的,如width=300
  • 在Xml中,只有单个标签而没有相对应的结束标签的元素必须以/结尾,如<img src="test.png" />
  • 在Html中,属性可以只有名字没有值,在Xml中这是不允许的

Xml文档规范

  • 最好加上文档头 <?xml version=1.0?>
  • 避免使用混合式内容:

    1
    2
    3
    4
    5
    <!--以下做法不推荐使用-->
    <font>
    Helvetica
    <size>36</size>
    </font>
  • 属性只应该用来对修改值的描述,而不是用来指定值

解析Xml文档

Java提供了两种Xml解析器

  • 像文档对象模型(Document Object Model, DOM)解析器这样的叫树型解析器,它们将读入的Xml文档转换成树结构
  • 像Xml简单Api(Simple API for Xml, SAX)解析器这样的流机制解析器,它们在读入Xml文档时生成相应的事件
  1. DOM解析器对于实现大多数目的来说都更容易一些。但如果要处理很长的文档,用它生成树结构将会消耗大量内存,或者如果只是对于某些元素感兴趣,而不关心它们的上下文,那么在这些情况下应该考虑使用流机制解析器。
  2. 对于获取到的数据通常 trim()一下

待续