- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java解析ml的常用方法.doc
XML包含的知识有:
xml-可扩展的标记语言
xsl (xslt)—对 xml 进行转化,如:xml一〉
dtd(schema)—规定xml卩j以使用什么标签
四种解析XML的方式:
DOM
SAX
JDOM
D0M4J
//xpath
ListNode list 二 document. selectNodes(〃/xx/xx/xx〃);
for (Node n : list)
{
System, out. print In (n. getName ());
String name = n.valueOf(〃@name〃);
dom4j (org. dom4j. xxx)
1.接口继承关系
interface java. lang. Cloneable
interface org. dom4j. Node
interface org. dom4j.Attribute
interface org. domdj. Branch
interface org. domdj- Document interface org. dom4j. Element
interface org. dom4j\ CharacterData
interface org. dom4j. CDATA
interface org. dom4j\ Comment
interface org. dom4j. Text
interface org. dom4j. DocumcntType
interface org. domdj. Entity
interface org. dom4j. Processinglnstruction
2.读取并解析XML文档
//从文件(或字符串)读取XML,输入文件名,返lElXML文档
public Document read(String textXML) throws MalFormedURLException,
DocumentException
{
SAXReader reader = new SAXReader();
//I.读取文件
Document document = reader, read (new File (textX.ML));
//2.读取字符中1
Document document = reader, read (new ByteArraylnputStream(textXML. getBytes(UTF-8)));
//3.读取字符串2
//import org. dom4j. DocumcntHclper;
Document document = DocumentHelper. parseText(textXML);
return document;
}
其中,reader的read方法是重载的,可以从InputStream, File, Url等多种不同的源 读取,得到的Document对象
就代表了整个XML。
収得root节点
//熟悉XML的人都知道,一切XML分析都足从root元素开始的 public Element getRootElement(Document doc)
return doc. getRootElement();
遍历XML树
//枚举所有子节点(只包拈一级子节点)
for (Iterator i 二 root, elementlterator () : i. hasNext ():)
{
Element element 二(Element)i. next();
//do something
}
//枚離名称为foo的节点
for (Iterator i = root, elementlterator(foo): i. hasNext();)
{
Element foo 二(Element)i.next ();
//do something
XPath访问一个节点
dom4j对XPath冇良好的支持,如访问一个节点,可寅接用XPath选择 //返M所有的/foo/bar以点
ListElement list 二 document. selectNodes(〃/foo/bar〃);
//然后遍历这个list
for (Iterator iter = list, iterator () ; iter. hasNext ();)
Element next = iter, next ();
String nodeName = next. getName () ; //获取节点名称
String ncwNodeName = next. setName (); //设置节点名称
String nodeValue = next. getValueO ; //获取节点值 Stri
文档评论(0)