2013-07-09 58 views
0

如何用java來計算此xml片段中PolylinePoint元素的數量(對您很重要的是,這個xml不是文件而是字符串) :將XML元素計數保存爲字符串

<LocationInformationRequest> 
      <InitialInput> 
       <GeoRestriction> 
        <Area> 
         <PolylinePoint> 
          <Longitude>88.1</Longitude> 
          <Latitude>88.2</Latitude> 
          <Altitude>88.3</Altitude> 
         </PolylinePoint> 
         <PolylinePoint> 
          <Longitude>88.4</Longitude> 
          <Latitude>88.5</Latitude> 
          <Altitude>88.6</Altitude> 
         </PolylinePoint> 
         <PolylinePoint> 
          <Longitude>88.7</Longitude> 
          <Latitude>88.8</Latitude> 
          <Altitude>88.9</Altitude> 
         </PolylinePoint> 
        </Area> 
       </GeoRestriction> 
      </InitialInput> 
     </LocationInformationRequest> 

用xml作爲文件很容易解決這個問題。但是對於一個字符串來說它更難。有任何想法嗎?

感謝您的幫助!

+2

使用字符串做什麼問題?我認爲你可以使用普通的Java XML API解析XML字符串和文件。你到目前爲止做了什麼,以及你目前如何使用文件做這件事? –

+0

你可能會發現[這個鏈接到關於XML解析的官方java教程](http://docs.oracle.com/javase/tutorial/jaxp/)很有幫助。 – Alderath

回答

0

您可以使用正則表達式:

 String str="<PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint><PolylinePoint><Longitude>88.7</Longitude><Latitude>88.8</Latitude><Altitude>88.9</Altitude></PolylinePoint>"; 
     Pattern p = Pattern.compile("<PolylinePoint>"); 
     Matcher m=p.matcher(str); 
     int res=0; 
     while (m.find()) { 
      res++; 
     } 
     System.out.println(res++); 
0

如何創建文檔DROM字符串?

Document document = builder.parse(new InputSource(new StringReader(xmlString)));

然後你可以很容易地使用xPath。