大家好:
现在我想解析一个xml,xml格式如
<?xml version="1.0" encoding="UTF-8"?>
<form:Documents xmlns:form="http://www.abbyy.com/FlexiCapture/Schemas/Export/FormData.xsd" xmlns:addData="http://www.abbyy.com/FlexiCapture/Schemas/Export/AdditionalFormData.xsd">
<_个险:_个险 addData:DocumentState="带有规则错误" addData:ImagePath="1601_1_1.jpg;1601_1_2.jpg;1601_1_3.jpg;1601_1_4.jpg" xmlns:_个险="http://www.abbyy.com/FlexiCapture/Schemas/Export/个险.xsd">
<_文档节段_1>
<_InsuredcltSex>M</_InsuredcltSex>
<_Insuredmarried>0</_Insuredmarried>
</_文档节段_1>
</_个险:_个险 >
<form:Documents>
以上是xml的格式
SAXReader reader = new SAXReader();
InputStream in = null;
in = new BufferedInputStream(new FileInputStream(file));
Document doc = reader.read(in);//读取XML数据
Iterator itRoot = doc.selectNodes("/form:Documents/_个险:_个险/_文档节段_1").iterator();
现在我用上面的方式进行解析,但是就是找不到 _文档节段_1这个节点,如果我把_个险:_个险这个节点的:去掉,就可以找到
不知道是什么原因,希望大家可以帮我一下,怎么才能找到相应的节点,谢谢
现在我想解析一个xml,xml格式如
<?xml version="1.0" encoding="UTF-8"?>
<form:Documents xmlns:form="http://www.abbyy.com/FlexiCapture/Schemas/Export/FormData.xsd" xmlns:addData="http://www.abbyy.com/FlexiCapture/Schemas/Export/AdditionalFormData.xsd">
<_个险:_个险 addData:DocumentState="带有规则错误" addData:ImagePath="1601_1_1.jpg;1601_1_2.jpg;1601_1_3.jpg;1601_1_4.jpg" xmlns:_个险="http://www.abbyy.com/FlexiCapture/Schemas/Export/个险.xsd">
<_文档节段_1>
<_InsuredcltSex>M</_InsuredcltSex>
<_Insuredmarried>0</_Insuredmarried>
</_文档节段_1>
</_个险:_个险 >
<form:Documents>
以上是xml的格式
SAXReader reader = new SAXReader();
InputStream in = null;
in = new BufferedInputStream(new FileInputStream(file));
Document doc = reader.read(in);//读取XML数据
Iterator itRoot = doc.selectNodes("/form:Documents/_个险:_个险/_文档节段_1").iterator();
现在我用上面的方式进行解析,但是就是找不到 _文档节段_1这个节点,如果我把_个险:_个险这个节点的:去掉,就可以找到
不知道是什么原因,希望大家可以帮我一下,怎么才能找到相应的节点,谢谢
祝LZ通过!
因为xml文档中没有Carrier这个namespace的声明
改成下面这样的形式就ok了
<?xml version="1.0"?>
<Carrier:Response xmlns:Carrier="myNameSpace">
<ReqId>555534756255551</ReqId>
<ReturnCode>0</ReturnCode>
<ReturnMessage>SUCCESS</ReturnMessage>
</Carrier:Response>