XmlObjectList这是什么类?

sAS112UUUYY111 2010-03-22 04:06:18
XmlObjectList是什么类?XmlObjectList xolist = new XmlObjectList();
在VTD解析xml时,调用了它,是自己写的吗?


package VTD;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import com.ximpleware.AutoPilot;
import com.ximpleware.BookMark;
import com.ximpleware.NavException;
import com.ximpleware.VTDGen;
import com.ximpleware.VTDNav;
import com.ximpleware.XPathEvalException;
import com.ximpleware.XPathParseException;

public class ParseXmlBase {

public List getObjectFromXml(String FileName, String SelectPath, int count)
throws XPathParseException, XPathEvalException, NavException {
List tablist = new ArrayList();
// 初始化 VTD 执行 触发器
VTDGen vg = new VTDGen();
int i;
// 根据xpath装入xml文件
AutoPilot ap = new AutoPilot();
// SelectPath 如: 根节点/子节点 根据xml的层级设置合适的路径深度
ap.selectXPath(SelectPath);
//SelectPath:"/page/tab"
// 节点位置以单例模式装入记忆坐标
BookMark bm = new BookMark();
// 装入要解析的文件返回是否解析成功
if (vg.parseFile(FileName, false)) {
//This method parses the XML file and returns a boolean indicating if it is successful or not
VTDNav vn = vg.getNav();
bm.bind(vn);
ap.bind(vn);

while ((i = ap.evalXPath()) != -1) {
// 获得tab 节点集
XmlObjectList xolist = new XmlObjectList();
xolist.setName(vn.toString(vn.getAttrVal("name")));
xolist.setReadonly(vn.toString(vn.getAttrVal("readonly")));
xolist.setDesc(vn.toString(vn.getAttrVal("desc")));
tablist.add(xolist);

xolist.setTabList(tablist);

bm.recordCursorPosition(); // equivalent to vn.push();
//这个地方很重要不刷新的话第一层就不能全部循环出来。
// get to the first child
XmlFieldObject xfo = new XmlFieldObject();
List xfolist = new ArrayList();
if (vn.toElement(VTDNav.FIRST_CHILD, "field")) {
// 找元素"field"
int j = vn.getText();
if (j != -1)
xfo.setName(vn.toString(vn.getAttrVal("name")));
xfo.setReadonly(vn.toString(vn.getAttrVal("readonly")));
xfo.setDesc(vn.toString(vn.getAttrVal("desc")));
xfolist.add(xfo);
}
for (int s = 0; s < count; s++) {
XmlFieldObject xfso = new XmlFieldObject();
if (vn.toElement(VTDNav.NEXT_SIBLING)) {
int j = vn.getText();
if (j != -1)
xfso.setName(vn.toString(vn.getAttrVal("name")));
xfso
.setReadonly(vn.toString(vn
.getAttrVal("readonly")));
xfso.setDesc(vn.toString(vn.getAttrVal("desc")));
xfolist.add(xfso);
}
}
// 将filelis装载到tab对象
xolist.setFileList(xfolist);
bm.setCursorPosition();
// 这个地方很重要不刷新的话第一层就不能全部循环出来。
}
// 这句的意思应该是重设xpath
ap.resetXPath();
}

return tablist;
}

public static void main(String[] args) throws XPathParseException,
XPathEvalException, NavException {
// TODO Auto-generated method stub
ParseXmlBase pxb = new ParseXmlBase();
List list = pxb.getObjectFromXml(
"f:/data/tests.xml",
"/page/tab", 13);

XmlObjectList xolistss = null;

List listf = new ArrayList();
HashMap tabmap = new HashMap();
HashMap tabmapq = new HashMap();
for (int sf = 0; sf < list.size(); sf++) {
xolistss = (XmlObjectList) list.get(sf);
// 第一层输出tab结果集
System.out.println("name...name...." + xolistss.getName() + " "
+ xolistss.getReadonly() + " " + xolistss.getDesc());
listf = xolistss.getFileList();
tabmap.put(xolistss.getName(), xolistss.getReadonly());
tabmapq.put(xolistss.getName(), xolistss.getDesc());




XmlFieldObject xfos = null;
for (int fl = 0; fl < listf.size(); fl++) {
xfos = (XmlFieldObject) listf.get(fl);
// 第二层输出file结果集
System.out.println(" " + xfos.getName() + " "
+ xfos.getReadonly() + " " + xfos.getDesc());
}
}
System.out.println("sssss" + tabmap + " " + tabmapq);
}

}

...全文
64 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
y11111494 2010-03-23
  • 打赏
  • 举报
回复
前来帮助了。。。。。。。。。。。
y11111494 2010-03-23
  • 打赏
  • 举报
回复
前来帮助
sAS112UUUYY111 2010-03-22
  • 打赏
  • 举报
回复
请教各位老师
sAS112UUUYY111 2010-03-22
  • 打赏
  • 举报
回复
还是从哪个包里导入的?
通过反射获取xml内容,并封装到List对象 这里的class的这个类里的属性必须和xml文件里的node的名称一致。(包括id,node里面必须有一个attribute id) 写的不是一般的乱。 以后再整理吧。 [code="java"]package com.lj.test; import...

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧