关于dom4j解析xml
一:相关jar包
dom4j-1.6.1.jar
二:用例xml文件
1 <?xml version="1.0" encoding="utf-8"?> 2 <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 4 <soap:Header> 5 <OGHeader transactionID="000040" timeStamp="2004-01-14T03:58:44.946875+08:00" 6 xmlns="http://webservices.micros.com/og/4.3/Core/"> 7 <Origin entityID="TAOBAO" systemType="MAINTAIN" /> 8 <Destination entityID="ORS" systemType="ORS" /> 9 </OGHeader> 10 </soap:Header> 11 <soap:Body> 12 <CancelBookingResponse xmlns:c="http://webservices.micros.com/og/4.3/Common/" 13 xmlns:hc="http://webservices.micros.com/og/4.3/HotelCommon/" xmlns="http://webservices.micros.com/ows/5.1/Reservation.wsdl"> 14 <Result resultStatusFlag="FAIL"> 15 <c:Text> 16 <c:TextElement>BOOKING NOT FOUND</c:TextElement> 17 </c:Text> 18 <hc:GDSError errorCode="15">BOOKING NOT FOUND</hc:GDSError> 19 </Result> 20 <ImageItems> 21 <ImageItem Category="6"> 22 <ImageFormat><URL>www.baidu.com</URL></ImageFormat> 23 <Description Caption="百度" /> 24 <TPA_Extensions> 25 <TPA_Extension> 26 <Extension Name="Property"> 27 <Item Key="IsMain" Value="true" /> 28 </Extension> 29 </TPA_Extension> 30 </TPA_Extensions> 31 </ImageItem> 32 <ImageItem Category="6"> 33 <ImageFormat><URL>http://www.google.cn/</URL></ImageFormat> 34 <Description Caption="谷歌" /> 35 </ImageItem> 36 </ImageItems> 37 </CancelBookingResponse> 38 </soap:Body> 39 </soap:Envelope>
三:解析
注:可能有的小白不知道如果获取节点,so,you can:
for (Iterator<Element> i = rootElement.elementIterator(); i.hasNext();) {
Element element = i.next();
System.out.println("节点名称:" + element.getName());
}
结果:
节点名称:Header
节点名称:Body
下面进入主题:解析xml
1 import java.io.File; 2 import java.util.List; 3 4 import org.dom4j.Document; 5 import org.dom4j.DocumentException; 6 import org.dom4j.Element; 7 import org.dom4j.io.SAXReader; 8 9 public class Text { 10 @SuppressWarnings("unchecked") 11 public static void main(String[] args) throws DocumentException { 12 SAXReader saxReader = new SAXReader(); 13 File xmlfile = new File("C:/Users/c.xml"); 14 Document fileDocument = saxReader.read(xmlfile); 15 Element rootElement = fileDocument.getRootElement(); 16 Element Body = rootElement.element("Body"); 17 Element CancelBookingResponse = Body.element("CancelBookingResponse"); 18 Element Result = CancelBookingResponse.element("Result"); 19 String resultStatusFlag = Result.attributeValue("resultStatusFlag"); 20 System.out.println("resultStatusFlag属性值:"+resultStatusFlag); 21 Element Text = Result.element("Text"); 22 Element TextElement = Text.element("TextElement"); 23 System.out.println("TextElement标签内容:"+TextElement.getTextTrim()); 24 Element ImageItems = CancelBookingResponse.element("ImageItems"); 25 List<Element> ImageItem = ImageItems.elements("ImageItem"); 26 for(Element Image:ImageItem){ 27 if("6".equalsIgnoreCase(Image.attributeValue("Category"))) { 28 Element ImageFormat = Image.element("ImageFormat"); 29 String URL = ImageFormat.element("URL").getText(); 30 if (ImageFormat != null) { 31 System.out.println("地址:"+URL); 32 Element Description = Image.element("Description"); 33 String Caption = Description.attributeValue("Caption"); 34 System.out.println("描述:"+Caption); 35 Element TPA_Extensions = Image.element("TPA_Extensions"); 36 if(TPA_Extensions != null ) { 37 Element TPA_Extension = TPA_Extensions.element("TPA_Extension"); 38 Element Extension = TPA_Extension.element("Extension"); 39 if (Extension != null && "Property".equalsIgnoreCase(Extension.attributeValue("Name"))) { 40 Element Item = Extension.element("Item"); 41 if (Item != null && "IsMain".equals(Item.attributeValue("Key"))) { 42 if (Item.attributeValue("Value") != null && "true".equals(Item.attributeValue("Value"))) { 43 System.out.println("IsMain:"+Item.attributeValue("Value")); 44 } 45 } 46 } 47 }else { 48 System.out.println("IsMain:NO"); 49 } 50 } 51 } 52 } 53 } 54 }
结果:


浙公网安备 33010602011771号