/**
*
* @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>
分享到:
相关推荐
XML(eXtensible Markup Language...总之,“XML转Java代码工具”是软件开发中的一个实用辅助工具,它利用XML的结构信息生成相应的Java类,帮助开发者快速地将XML数据集成到Java应用程序中,提升了开发效率和代码质量。
Java代码PDF解析成XML是一项技术任务,涉及到Java编程语言、PDF文档处理和XML数据格式转换。在这个场景中,我们主要关注如何使用Java库iTextPDF将PDF文档中的内容解析为XML结构。 首先,我们需要理解PDF(Portable ...
在Android开发中,XML常用于布局文件的定义,但同时,XML也可以作为数据交换格式,与Java代码进行交互。JavaDOM(Document Object Model)解析器是处理XML文档的一种方式,它将整个XML文档加载到内存中,形成一个树...
在XML与Java代码生成过程中,如果需要执行一些高性能或者底层的操作,可能会使用JNI。使用JNI需要编写`.h`头文件,`.c`或`.cpp`源文件,然后通过Java的`System.loadLibrary`加载动态链接库。 总结来说,这个项目...
添加依赖后,我们就可以在Java代码中导入并使用XStream。首先,引入必要的包: ```java import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; ``` 接下来,定义一个Java...
本资源包含的是XML与Java相关的源代码,适合初学者和有经验的开发者学习和参考。 在Java中,处理XML主要有以下几种方式: 1. DOM(Document Object Model):这是一种将整个XML文档加载到内存中的方法,形成一个树...
它可能是通过命令行界面或图形用户界面操作,用户只需要提供XML文件,工具就能自动生成对应的Java Bean代码。 标签"xml 转 Java bean"明确了这个工具的核心功能,即XML数据的解析和转换。这个标签有助于开发者在...
虽然主要用于构建图形用户界面,JavaFX也提供了一些XML处理工具,如`javafx.scene.web.XmlHttpRequest`,可以用来异步加载和发送XML数据。 6. **StAX(Streaming API for XML)**: StAX是另一种基于流的解析器,...
JAVA代码注释规范codetemplates.xml,可直接导入Eclipse,代码注释效果很棒!
可以通过xml文件直接生成对应的java类文件。 运行需要jre
它使得在Java应用程序中使用XML数据变得更加方便,无需手动编写大量的转换代码。本教程将详细介绍JAXB如何实现XML到Java对象以及Java对象到XML的转换。 ### JAXB概述 JAXB提供了一种自动化的机制,将XML Schema...
以下是一些关于如何使用Java处理XML文件的关键知识点: 1. **JAXB(Java Architecture for XML Binding)**:JAXB是Java平台的标准API,用于在Java对象和XML之间进行绑定。它提供了将Java对象转换为XML文档(对象到...
Java 实现 XML 解析 Word 文档代码实现 基于给定的文件信息,我们可以总结出以下知识点: 1. Java 实现 XML 解析 Word 文档 Java 可以使用多种方式来解析 Word 文档,包括使用 Apache POI 库、Java2Word 库等。...
java代码-使用java解决JTree访问XML的源代码 ——学习参考资料:仅用于个人学习使用!
本项目关注的是如何使用Java通过TCP/IP协议发送XML文件。TCP/IP(Transmission Control Protocol/Internet Protocol)是一种通信协议,是互联网的基础,确保数据在不同网络间的可靠传输。 首先,我们需要了解Java中...
Java作为一种广泛使用的后端编程语言,提供了多种方式来解析XML文档,使得处理多级嵌套的数据变得可能。本文将详细讲解如何在Java中解析XML,特别是针对多级结构的情况。 首先,Java提供了两种主要的API来处理XML:...
例如,如果知道每个XML文件包含特定的元素,可以编写代码直接查找并处理这些元素,而不是遍历整个文档。 总的来说,Java提供了强大的工具集来处理XML文件。无论是导入还是导出,选择合适的解析器和API能有效提高...
java代码-使用java解决XML2JTree的源代码 ——学习参考资料:仅用于个人学习使用!
### Java DOM 解析 XML 在Java中,DOM(Document Object Model)是一种用于处理XML文档的标准接口。通过DOM,我们可以将整个XML文档加载到内存中,并对其进行读取、修改等操作。这种方式非常适合那些需要对XML文档...
### Android String.xml标签在java代码中的引用 #### 概述 在Android开发中,为了方便进行国际化处理以及统一管理应用内的字符串资源,开发者通常会将应用程序中的文本信息存放在`res/values/strings.xml`文件中。...