关于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 }

 

结果:

 

posted @ 2018-02-11 09:37  迷路的程序员  阅读(219)  评论(0)    收藏  举报