一些xml的java代码


/**
*
* @param xml
* @return
* @Exception RDCommunicationException 1 critical item is null.
* 2 document is illegal.
* 3 the type of value is not anticipated.
* @param
* @return List<String> this result's sequence is
* 0 : Feature optional
* 1 : Property Unit critical
* 2 : Property Name critical
* 3 : Model critical
* 4 : geo:long optional
* 5 : geo:lat optional
* 6 : geo:alt optional
* 7 : gn:name optional
*/
public Map<String,String> analyzerXml(String xml)throws RDCommunicationException
{
logger.info("XmlUtil.analyzerXml: Analyzing String :" + xml);

Map<String,String> rel = new HashMap<String,String>();
SAXReader reader = new SAXReader(false);
String tag1 = "//"+namespace+":"+"information-type";
String tag2 = "//"+namespace+":"+"location";
String tag22 = "//"+"geo"+":"+"long";
String tag23 = "//"+"geo"+":"+"lat";
String tag24 = "//"+"geo"+":"+"alt";
String tag25 = "//"+"gn"+":"+"name";
reader.getDocumentFactory().setXPathNamespaceURIs(dealNamespace());
Document doc = null;
try {
doc = reader.read(new ByteArrayInputStream(xml.getBytes("UTF-8")));
} catch (DocumentException e) {
logger.error("XmlUtil.analyzerXml could not parse response from RD", e.fillInStackTrace());
throw new RDCommunicationException("Could not parse response from RD",e);
} catch (UnsupportedEncodingException e) {
logger.error("XmlUtil.analyzerXml could not parse response from RD", e.fillInStackTrace());
throw new RDCommunicationException("Could not parse response from RD",e);
}
Element root = doc.getRootElement();
Element info;
for (Iterator i = doc.selectNodes(tag1).iterator(); i.hasNext();){
info = (Element)i.next();
try{
Element feature = (Element)info.elementIterator("Feature").next();
rel.put("Feature",feature.getText());
}catch(Exception e)
{
logger.error("XmlUtil.analyzerXml. Feature is null. ", e.fillInStackTrace());
}
try{
Element property = (Element)info.elementIterator("Property").next();
rel.put("Property Unit",((Element)property.elementIterator("Unit").next()).getText());
rel.put("Property Name",((Element)property.elementIterator("Name").next()).getText());
}catch(Exception e)
{
logger.error("XmlUtil.analyzerXml. Property is null.", e.fillInStackTrace());
//throw new RDCommunicationException("Could not parse response from RD",e);
}
}


Element resource = root.element("Resource-Description");
try{
for (Iterator i = resource.elementIterator("Model"); i.hasNext();) {
Element model = (Element) i.next();
rel.put("Model",model.getText());
}
}catch(Exception e)
{
logger.error("XmlUtil.analyzerXml. Model is null", e.fillInStackTrace());
//throw new RDCommunicationException("Could not parse response from RD",e);
}
for (Iterator i = doc.selectNodes(tag2).iterator(); i.hasNext();) {
info = (Element) i.next();
try{
rel.put("geo:long",((Element) info.selectNodes(tag22).iterator().next())
.getText());
}catch(Exception e)
{
logger.info("There is no element" + tag22 + "in result xml file");
}
try{
rel.put("geo:lat",((Element) info.selectNodes(tag23).iterator().next())
.getText());
}catch(Exception e)
{
logger.info("There is no element" + tag22 + "in result xml file");
}
try{
rel.put("geo:alt",((Element) info.selectNodes(tag24).iterator().next())
.getText());
}catch(Exception e)
{
logger.info("There is no element" + tag22 + "in result xml file");
}
try{
rel.put("gn:name",((Element) info.selectNodes(tag25).iterator().next())
.getText());
}catch(Exception e)
{
logger.info("There is no element" + tag22 + "in result xml file");
}
}
return rel;
}
// public List<String> analyzerXml(InputStream is)
// {
// List<String> rel = new ArrayList<String>();
// //String result = null;
// SAXReader reader = new SAXReader();
//
// String tag = "//"+namespace+":"+"information-type";
// reader.getDocumentFactory().setXPathNamespaceURIs(dealNamespace());
// Document doc = null;
// try {
// doc = reader.read(is);
// } catch (DocumentException e) {
// e.printStackTrace();
// return rel;
// }
//
// logger.info("XmlUtil.analyzerXml: Analyzing InputStream, doc.getText :" + doc.getText());
//
// Element root = doc.getRootElement();
// Element info;
// for (Iterator i = doc.selectNodes(tag).iterator(); i.hasNext();){
// info = (Element)i.next();
// Element feature = (Element)info.elementIterator("Feature").next();
// rel.add(feature.getText());
// Element property = (Element)info.elementIterator("Property").next();
// rel.add(((Element)property.elementIterator("Unit").next()).getText());
// rel.add(((Element)property.elementIterator("Name").next()).getText());
// }
// for (Iterator i = root.elementIterator("Model"); i.hasNext();) {
// Element model = (Element) i.next();
// rel.add(model.getText());
// }
//
// return rel;
// }
private Map dealNamespace()
{
Map map = new HashMap();
map.put("ard","http://www.ict-sensei.org/AdvancedResourceDescription/");
map.put("gn","http://www.geonames.org/ontology#");
map.put("geo","http://www.w3.org/2003/01/geo/wgs84_pos#");
return map;

}
public List<String> getItemFromXml(InputStream is, String tag,
String namespace)
{
List<String> rel = new ArrayList<String>();
//String result = null;
SAXReader reader = new SAXReader();
if(namespace != null && !namespace.equals(""))
tag = "//"+namespace+":"+tag;
reader.getDocumentFactory().setXPathNamespaceURIs(dealNamespace());
Document doc = null;
try {
doc = reader.read(is);
} catch (DocumentException e) {
return rel;
}
Element root = doc.getRootElement();
Element foo;
for (Iterator i = doc.selectNodes(tag).iterator(); i.hasNext();){
foo = (Element)i.next();
rel.add(foo.getText());
}
return rel;
}
public List<String> getItemFromXml(String is, String tag) {
List<String> rel = new ArrayList<String>();
SAXReader reader = new SAXReader();

Document doc = null;
try {
doc = reader.read(new ByteArrayInputStream(is.getBytes("UTF-8")));

} catch (DocumentException e) {
e.printStackTrace();
return rel;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
return rel;
}
Element root = doc.getRootElement();
Element resource = root.element("ResourceDescription");
Element foo;
for (Iterator i = resource.elementIterator(tag); i.hasNext();) {
foo = (Element) i.next();
rel.add(foo.getText());
}
return rel;
}


<Result><Matched>1</Matched><Resource-Description><Resource-ID>http://m2m.ericsson.com/sensors/causensor010</Resource-ID><Name>Fish pond sensor 1</Name><Model>cau:001</Model><Storage-ID>1</Storage-ID><Expiration-Time>12-04-21T15:02:30+00:00</Expiration-Time><Tag>Temperature</Tag><Tag>Water</Tag><Tag>Fish</Tag><Tag>
<ards xmlns:ard="http://www.ict-sensei.org/AdvancedResourceDescription/"
xmlns:sweet="http://sweet.jpl.nasa.gov/ontology/property.owl#"
xmlns:wn="http://purl.org/vocabularies/princeton/wn30/"
xmlns:gn="http://www.geonames.org/ontology#"
xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">
<ard:Resource-Description Name="Fish pond sensor 1" ResourceId="http://m2m.ericsson.com/sensors/causensor010">
<ard:location>
<gn:name>CAU_Lab_Aquarium</gn:name>
<geo:lat>40.022464</geo:lat>
<geo:long>116.27692</geo:long>
<geo:alt>11.27</geo:alt>
</ard:location>

<ard:Expiration-Time>12-04-21T15:02:30</ard:Expiration-Time>
<ard:Operation-Description>
<ard:input>report data</ard:input>
<ard:output>
<ard:information-type>
<Property>
<Unit>degreeC</Unit>
<Name>temperature</Name>
</Property>
<Feature>water</Feature>
</ard:information-type>
</ard:output>
</ard:Operation-Description>
</ard:Resource-Description>
</ards>
</Tag><RAI-Description><RAI-ID></RAI-ID><Description>POST SQL query/GET directly</Description><Document-Link>urn:sensei:rai:dh:dsqs6</Document-Link><REP-Locator Expiration-Time="12-04-21T15:02:30+00:00"></REP-Locator></RAI-Description></Resource-Description></Result>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值