用java解析获得xml中的值
<MdmRecords><RecordrecordId="R546446"><FieldisMultiValue="0"><Name>TradeNo</Name><Val...
<MdmRecords>
<Record recordId="R546446">
<Field isMultiValue="0">
<Name>TradeNo</Name>
<Value>1001000082</Value>
</Field>
<Field isMultiValue="0">
<Name>TradeSort</Name>
<Value>03 既是客户又是供应商</Value>
</Field>
<Field isMultiValue="0">
<Name>Name1</Name>
<Value>ZYM-2009流程</Value>
</Field>
<Field isMultiValue="0">
<Name>Name3</Name>
<Value>ZZ</Value>
</Field>
<Field isMultiValue="0">
<Name>SearchField</Name>
<Value>4324</Value>
</Field>
<Field isMultiValue="0">
<Name>CNMnemocode</Name>
<Value>23423</Value>
</Field>
<Field isMultiValue="0">
<Name>Street1</Name>
<Value>不过</Value>
</Field>
<Field isMultiValue="0">
<Name>City</Name>
<Value>北京市</Value>
</Field>
<Field isMultiValue="1">
<Name>tblMasterData_Publish_Vendor</Name>
<Value>
<LookupRecord>
<Field isMultiValue="0">
<Name>SystemID</Name>
<Value>220CDF, 工程建设ERP开发系统(2.0)</Value>
</Field>
</LookupRecord>
</Value>
</Field>
<Field isMultiValue="1">
<Name>tblMasterData_Publish_Customer</Name>
<Value>
<LookupRecord>
<Field isMultiValue="0">
<Name>SystemID</Name>
<Value>220CDF, 工程建设ERP开发系统(2.0)</Value>
</Field>
</LookupRecord>
</Value>
</Field>
<Field isMultiValue="0">
<Name>C_OIL_CATE1</Name>
<Value>[Null]</Value>
</Field>
</Record>
</MdmRecords>
如上xml,我要遍历获得每一个Field文件里的name值以及对应的value。应该怎么办 最好用dom4j 展开
<Record recordId="R546446">
<Field isMultiValue="0">
<Name>TradeNo</Name>
<Value>1001000082</Value>
</Field>
<Field isMultiValue="0">
<Name>TradeSort</Name>
<Value>03 既是客户又是供应商</Value>
</Field>
<Field isMultiValue="0">
<Name>Name1</Name>
<Value>ZYM-2009流程</Value>
</Field>
<Field isMultiValue="0">
<Name>Name3</Name>
<Value>ZZ</Value>
</Field>
<Field isMultiValue="0">
<Name>SearchField</Name>
<Value>4324</Value>
</Field>
<Field isMultiValue="0">
<Name>CNMnemocode</Name>
<Value>23423</Value>
</Field>
<Field isMultiValue="0">
<Name>Street1</Name>
<Value>不过</Value>
</Field>
<Field isMultiValue="0">
<Name>City</Name>
<Value>北京市</Value>
</Field>
<Field isMultiValue="1">
<Name>tblMasterData_Publish_Vendor</Name>
<Value>
<LookupRecord>
<Field isMultiValue="0">
<Name>SystemID</Name>
<Value>220CDF, 工程建设ERP开发系统(2.0)</Value>
</Field>
</LookupRecord>
</Value>
</Field>
<Field isMultiValue="1">
<Name>tblMasterData_Publish_Customer</Name>
<Value>
<LookupRecord>
<Field isMultiValue="0">
<Name>SystemID</Name>
<Value>220CDF, 工程建设ERP开发系统(2.0)</Value>
</Field>
</LookupRecord>
</Value>
</Field>
<Field isMultiValue="0">
<Name>C_OIL_CATE1</Name>
<Value>[Null]</Value>
</Field>
</Record>
</MdmRecords>
如上xml,我要遍历获得每一个Field文件里的name值以及对应的value。应该怎么办 最好用dom4j 展开
2015-09-08
展开全部
import java.io.File;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Test {
public static void main(String[] args) {
File file = new File("d:\\Test.xml");
SAXReader reader = new SAXReader();
Document doc = null;
try {
doc = reader.read(file);
}
catch(DocumentException e) {
e.printStackTrace();
}
Element root = doc.getRootElement();
List<Element> records = root.elements("Record");
for(Element record : records) {
List<Element> fields = record.elements("Field");
for(Element field : fields) {
parseFieldElement(field);
}
}
}
public static void parseFieldElement(Element e) {
System.out.println(e.elementText("Name"));
if(Integer.parseInt(e.attribute("isMultiValue").getValue()) == 1) {
List<Element> fields = e.element("Value").element("LookupRecord").elements("Field");
for(Element field : fields) {
parseFieldElement(field);
}
}
else {
System.out.println(e.elementText("Value"));
}
}
}
展开全部
xpath搜索xml,比如
public void findNames(Document document) throws DocumentException {
List list = document.selectNodes( "//Field/Name" );
for (Iterator iter = list.iterator(); iter.hasNext(); ) {
Attribute attribute = (Attribute) iter.next();
String name = attribute.getValue();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |