您现在的位置是:主页 > news > 武汉企业做网站找哪家好/域名官网

武汉企业做网站找哪家好/域名官网

admin2025/6/8 3:34:16news

简介武汉企业做网站找哪家好,域名官网,数字营销网站建设,忍不住在楼道里面做免费网站在Java中要对Xml进行解析如果要使用Dom4j方法的话,存入MAP的话,必须先引入包dom4j-1.6.1.jar,jaxen-1.1.1.jar。在编程的时候,记得把这些包引入的Java工程的根目录下面,同时在程序同引入这些包。Eclipse可以右键相应的…

武汉企业做网站找哪家好,域名官网,数字营销网站建设,忍不住在楼道里面做免费网站在Java中要对Xml进行解析如果要使用Dom4j方法的话,存入MAP的话,必须先引入包dom4j-1.6.1.jar,jaxen-1.1.1.jar。在编程的时候,记得把这些包引入的Java工程的根目录下面,同时在程序同引入这些包。Eclipse可以右键相应的…

在Java中要对Xml进行解析如果要使用Dom4j方法的话,存入MAP的话,必须先引入包dom4j-1.6.1.jar,jaxen-1.1.1.jar。在编程的时候,记得把这些包引入的Java工程的根目录下面,同时在程序同引入这些包。Eclipse可以右键相应的工程,选择JAVA Build Path->Add External JARs...就可以。

一、目的

把一个类似于

<A>
<a>
<i>1</i>
<ii>2</ii>
...
</a>
<a>
<i>3</i>
<ii>4</ii>
...
</a>
...
</A>

的XML文档,先拆分成{i=1,ii=2} 与{i=3,ii=4}……的MAP,再合并成[{i=1,ii=2},{i=3,ii=4},...}的List。

实质上,MAP与LIST都类似于数组,一系列的变量的集合。

只是MAP与LIST可存放的元素与功能都比数组,这种数据结构,强大得多,它们都可以看作一种可以任意遍历的线性表。

二、对于XML的处理

首先,必须把XML通过缓冲区的数据流读入至一个字符串变量之中,然后再进行处理。不管XML是来自网络还是文件,甚至是标准的输入输出都按Java的数据流进行处理,没有任何的区别。

然后,对记录了XML的字符串进行处理:

public static List<Map> readStringXmlOut(String xml)
{List<Map> mList = new ArrayList<Map>();Document doc = null;try{// 将字符串转为XMLdoc = DocumentHelper.parseText(xml);// 获取根节点Element root = doc.getRootElement();// 拿到根节点的名称// System.out.println("根节点:" + root.getName());Iterator i = root.elementIterator("a");while (i.hasNext()){Map map = new HashMap();Element e = (Element) i.next();for (Iterator ii = e.elementIterator(); ii.hasNext();){Element ee = (Element) ii.next();// 如果迭代器(游标)遇到content标签则需要进行处理map.put(ee.getName(), ee.getStringValue());}mList.add(map);}}catch (DocumentException e){e.printStackTrace();}catch (Exception e){e.printStackTrace();}return mList;
}

1.首先,解析XML要求程序猿必须处理相应的异常,所有的处理XML代码必须被try

2.扔过来的字符串必须放在一个Document类型的变量doc进行处理,通过DocumentHelper.parseText(String)方法,把字符串擦写成Document类型

3.然后使用doc中的getRootElement()方法获取根节点。

4.结点元素都是Element类型,结点元素的迭代器,或者叫游标,也就是类似于指针的东西都是Iterator类型

5.通过强制类型转换,把Iterator类型强行转换成Element类型就是求出迭代器所指的元素

6.Iterator类型下面有next()方法可以把这个指针下移

7.Iterator类型下面有hasNext()方法,返回一个布尔值,可以判断指针下面有没有东西

Iterator i = root.elementIterator("a");意思是迭代器i如果向下拉,是直接拉到下一个<a>结点,无视两个a结点之间存在着多少的结点

Iterator ii = e.elementIterator();意思是迭代器ii如果向下拉,则只是仅仅向下移一个结点,不指定ii寻找的方向。

8.上面代码的意思是,创造两个迭代器(游标),来处理这个由Xml转换成的Document类型的变量doc,然后不停地往下读,读到读完为止,ii的for循环镶嵌在i的while循环里面,ii循环完毕,i则向下拉到下一个<a>结点。

三、对于Map的处理

要把XML文档,先拆分成{i=1,ii=2} 与{i=3,ii=4}……的Map,则用到结点元素Element类型下的getName()与getStringValue()方法,map.put(ee.getName(), ee.getStringValue());的意思,是把当前元素的结点名与结点值压到Map当中。例如<i>1</i>,则i是结点名,1是结点值。

通过Map.get("结点名")能把相应的结点值取出来。结点名,结点值都是String类型。

四、对于List的处理

两个迭代器ii与i遍历完,则同时生产完一张完整的Map。

通过mList.add(map);能把这张Map压倒mList中。

程序首部List<Map> mList = new ArrayList<Map>();代表这个list只存MAP。

List的操作相当简单。通过add()、remove()、clear()方法能很好地处理一切。

List这种类型,不需要额外的包,是java.util.*包的基本类型之一。