关于xml带命名空间的解析问题,前不久公司实现了用 java调用.net webservice接口.由于系统之间传输的是带命名空间xml文件,开始始终解析得不到节点信息,一直纳闷了很久,后来看了一为牛人的blog,终于实现了.
public List loadXml(String path)
{
Flights flight;
List list = new ArrayList();
String bunkList = "";
String takeOffCity = "";
String arriveCity = "";
try
{
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new BufferedInputStream(
new FileInputStream(
new File(path))));
HashMap xmlMap = new HashMap();
xmlMap.put("mo","http://www.xxxx.com");
XPath x = document.createXPath("//mo:string"); //child node
x.setNamespaceURIs(xmlMap);
Element valueElement = (Element)x.selectSingleNode(document);
String flights = valueElement.getText();
StringTokenizer loop = new StringTokenizer(flights,"^");
while(loop.hasMoreTokens())
{
flight = new Flights();
StringTokenizer deep = new StringTokenizer(loop.nextToken(),",");
flight.setTakeOffDate(deep.nextToken());
flight.setTakeOffTime(deep.nextToken());
flight.setArriveTime(deep.nextToken());
flight.setAirCode(deep.nextToken());
flight.setFlightNum(deep.nextToken());
bunkList = deep.nextToken();//所有舱位信息
takeOffCity = deep.nextToken();
arriveCity = deep.nextToken();
flight.setAirBunkInfoBeans(getBunkInfo(takeOffCity,arriveCity,flight.getAirCode(),bunkList));
flight.setPlaneModel(deep.nextToken());
flight.setInsurance(deep.nextToken());
flight.setMeal(deep.nextToken());
flight.setElectricTicketFlag(deep.nextToken());
flight.setTotalTime(getTime(flight.getTakeOffTime(),flight.getArriveTime()));
list.add(flight);
}
}catch(DocumentException es)
{
es.printStackTrace();
}catch(IOException er)
{
er.printStackTrace();
}
return list;
}
}
分享到:
相关推荐
XML的命名空间
用C#写的自认为很经典的操作XML的例子,附代码和XML文件。包含查询,修改的几种方法,还包括查询有命名空间的XML节点的内容。包里的XML文件要复制到C:\TEMP目录下,或者自己在程序里改路径要不找不到XML文件。
jquery.xmlns-1.7.0.js 是根据jquery.xmlns.js改写的适用于各种版本的jquery解析带命名空间的XML数据,里面附有实例代码,如果使用中有遇到问题,可以反馈,我会进一步改进。
NULL 博文链接:https://qiaokeli.iteye.com/blog/1790138
Java使用sax、dom、dom4j解析xml文档的代码,包含dom4j的jar包。
删除和添加对XML命名空间未做处理。不过仿照查询和修改,很简单!将数据查询出来,并且绑定到下拉列表框,处理了数据重复的问题!实现二级联动的效果!加油哦!
主要介绍了Python利用命名空间解析XML文档,帮助大家更好的理解和学习Python,感兴趣的朋友可以了解下
Tinyxml文件解析经典例子
通过 利用 java 以及 dom4j 来进行XML 文件的 生成与 解析操作。代码简单易懂。
提供微信小程序解析Xml库,微信小程序对Xml支持不够,通过这个库可以实现Xml字符串转Json,或者Json转Xml
做Java课程设计有用到的例子,是个一看就能上手的例子。
NULL 博文链接:https://superich2008.iteye.com/blog/1750287
XML是微软.Net战略的一个重要组成部分,而且它可谓是XML Web...首先,我会向大家介绍.Net框架中与XML相关的命名空间和其中的重要类。其次,我还会给出有关的实例以使读者更进一步的了解XML文档的读写操作的具体方法。
XML应用开发(软件品牌)-1期 3.12 案例分析-限定目标命名空间.doc 学习资料 复习资料 教学资源
怎样使用XML命名空间来避免元素命名冲突。 XML CDATA 怎样让XML解析器知道某些文字不进行解析呢。使用CDATA。 XML编码 怎样把你的XML文档编码。 XML服务器 怎样在服务器上产生XML。 XML应用 怎样...
尽管 xml.etree.ElementTree 库通常用来做解析工作,其实它也可以创建XML文档。 例如,考虑如下这个函数: from xml.etree.ElementTree import Element def dict_to_xml(tag, d): ''' Turn a simple dict of key/...
1.6.6 命名空间和模式 1.6.7 链接和查询 1.6.8 转换XML 1.6.9 XML和数据库 1.6.10 服务器到服务器 1.6.11 电子商务与XML 1.6.12 使用样式 1.6.13 无线应用程序协议和WML 1.7 XML的应用程序举例 1.8 小结 ...
1.6.6 命名空间和模式 1.6.7 链接和查询 1.6.8 转换XML 1.6.9 XML和数据库 1.6.10 服务器到服务器 1.6.11 电子商务与XML 1.6.12 使用样式 1.6.13 无线应用程序协议和WML 1.7 XML的应用程序举例 1.8 小结 ...