今天主要用到了对xml的解析,现在做个记录,首先我贴一段我参考的别人的代码。里面的注释描述的很清楚。
package com.ytxsoft.xml;
import com.ximpleware.AutoPilot;
import com.ximpleware.VTDGen;
import com.ximpleware.VTDNav;
public class UserVTDXML {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
VTDGen gen =new VTDGen();
//解析student.xml对象,不含有命名空间
gen.parseFile("f:\\student.xml", false);
VTDNav nav =gen.getNav();
AutoPilot pilot =new AutoPilot();
//将导航器绑定到pilot对像上
//如果把VTDNav表达为车辆上导航仪器的话,那么AutoPilot就代表开车人,他能更智能化的找到XPATH表达的含义
pilot.bind(nav);
//设置重新设置一个xpath表达式的字符串,但是通常是在之后调用
pilot.selectXPath("/students/student");
//evalXPath()返回nodeset集合中的下一个节点,如果检测到为匹配的节点,则返回为-1
System.out.println(pilot.evalXPath());
System.out.println(pilot.evalXPathToBoolean());
System.out.println(pilot.evalXPathToNumber());
System.out.println(pilot.evalXPathToString());
System.out.println(pilot.getExprString());
//最终操作XML的,还得让VTDNav来做,可见pilot也只是起了一个导航的作用
if(pilot.evalXPath()!=-1){
System.out.println(nav.toString(nav.getAttrVal("name")));
}
}catch(Exception ex){
ex.printStackTrace();
}
}
}
看过这段代码后相信已经有一些了解了,但仍可能和我一样还存在疑惑,下面是我修改后的一段代码,主要作用是:把下面这种xml文件解析:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<body>
<id>0001</id>
<name>zhangsan</name>
<records>
<record>
<school>frist</school>
</record>
<record>
<school>second</school>
</record>
</records>
</body>
取出<record>下的<school>中的信息,则可以通过下面的代码实现:
package com.xml;
import java.util.ArrayList;
import java.util.List;
import com.ximpleware.AutoPilot;
import com.ximpleware.VTDGen;
import com.ximpleware.VTDNav;
public class TestXml {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
VTDGen gen = new VTDGen();
// 解析student.xml对象,不含有命名空间
gen.parseFile("e:\\student.xml", false);
VTDNav nav = gen.getNav();
AutoPilot ap = new AutoPilot();
AutoPilot ape = new AutoPilot();
// 将导航器绑定到ap对像上
// 如果把VTDNav表达为车辆上导航仪器的话,那么Autoap就代表开车人,他能更智能化的找到XPATH表达的含义
ap.bind(nav);
ape.bind(nav);
// 设置重新设置一个xpath表达式的字符串,但是通常是在之后调用
ape.selectXPath("/body/records/record");
List<String> records = new ArrayList<String>();
String school= "" ;
// evalXPath()返回nodeset集合中的下一个节点,如果检测到为匹配的节点,则返回为-1
while(ape.evalXPath() != -1){
ap.selectXPath("school");
school= ap.evalXPathToString();
records.add(school);
}
ape.resetXPath();
for(String s : records){
System.out.println("===" + s);
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
基本的就这样,介绍到这里了。
分享到:
相关推荐
xml解析
自己写的Demo,对VTDNav、AutoPilot进一步进行封装,从而简化解析代码,仅供参考 上传后才发现上传的demo.xml错了,貌似无法重新上传,内容应该是 <?xml version="1.0" encoding="UTF-8"?> <DoubleData>10.25...
git clone https://github.com/PX4/PX4-Autopilot.git --recursive 由于外网原因克隆PX4源码不完整(各子项目库下载不齐全)的可下载此PX4源码完整版
直升机模型自动控制系统,包括上位机和控制系统
PX4-Autopilot-master.zip
软件为使用python进行封装的上位机,可用于解析周立功CAN通讯软件保存的txt文件,主要针对汽车报文进行解析
从特斯拉Autopilot看自动驾驶操作系统中的感知V5_ 2020.11.20
Based on the ROOT privilege of the APE (Tesla Autopilot ECU, software version 18.6.1), we did some further interesting research work on this module. We analyzed the CAN messaging functions of APE, ...
autopilot, cf插件关闭,零停机应用部署 自动驾驶仪cf插件 for,零停机应用程序部署。 安装从发布页面下载最新版本并使它的执行。$ cf install-plugin path/to/downloaded/binary用法$ cf zer
使用Engine在本地运行由Autopilot创建的脚本。 请参阅以获取更多信息。 发展 该存储库是由管理的monorepo。 初始设置 确保已全局安装Lerna: npm i -g lerna 签出项目后,运行: npm run init 这将在子程序包中...
matlab codes for assignment of autopilot zeft
:warning: 现在不推荐使用Autopilot CLI :请在以下使用适用于Twilio CLI的Autopilot插件 //www.twilio.com/docs/autopilot/twilio-autopilot-cli Twilio自动驾驶仪CLI 用于管理Twilio Autopilot机器人的命令行界面...
px4固件 px4-autopilot
Autopilot是Java BitTorrent客户端Azureus(http://azureus.sourceforge.net)的插件模块。 此插件可根据用户定义的默认值和替代值的可配置集合自动停止活动的种子文件,从而帮助管理下载。
高阶自动驾驶,什么是autopilot;内含非常详细完整的自动驾驶基础知识和算法学习资料
具有Arduino和Java的自动驾驶仪具有Arduino和Java接口的自动驾驶仪:二手:Arduino AtMega2560驱动程序LM298传感器HMC5883L
Tesla_Model3_Autopilot30.rar
control.py :控制脚本fgfs.sh启动脚本input.xml :输入协议设置output.xml :输出协议设置
”如果您使用和重视HMRC Webchat,Webchat Autopilot会为您服务!**我如何使用webchat自动驾驶仪?**1.安装WebChat AutoPilot浏览器插件2.前往HMRC WebChat门户网站查询(例如自我评估)3.让标签打开并继续您的一天...