`

一些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>
分享到:
评论

相关推荐

    XML转java代码工具

    XML(eXtensible Markup Language...总之,“XML转Java代码工具”是软件开发中的一个实用辅助工具,它利用XML的结构信息生成相应的Java类,帮助开发者快速地将XML数据集成到Java应用程序中,提升了开发效率和代码质量。

    xml自动生成java代码

    在Android开发中,XML常用于布局文件的定义,但同时,XML也可以作为数据交换格式,与Java代码进行交互。JavaDOM(Document Object Model)解析器是处理XML文档的一种方式,它将整个XML文档加载到内存中,形成一个树...

    java代码pdf解析成xml.rar

    Java代码PDF解析成XML是一项技术任务,涉及到Java编程语言、PDF文档处理和XML数据格式转换。在这个场景中,我们主要关注如何使用Java库iTextPDF将PDF文档中的内容解析为XML结构。 首先,我们需要理解PDF(Portable ...

    XML转换为JAVA对象的方法

    添加依赖后,我们就可以在Java代码中导入并使用XStream。首先,引入必要的包: ```java import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; ``` 接下来,定义一个Java...

    xml自动生成java代码(改)

    在XML与Java代码生成过程中,如果需要执行一些高性能或者底层的操作,可能会使用JNI。使用JNI需要编写`.h`头文件,`.c`或`.cpp`源文件,然后通过Java的`System.loadLibrary`加载动态链接库。 总结来说,这个项目...

    xml java 源代码

    本资源包含的是XML与Java相关的源代码,适合初学者和有经验的开发者学习和参考。 在Java中,处理XML主要有以下几种方式: 1. DOM(Document Object Model):这是一种将整个XML文档加载到内存中的方法,形成一个树...

    用java读取修改xml文件的代码实现

    虽然主要用于构建图形用户界面,JavaFX也提供了一些XML处理工具,如`javafx.scene.web.XmlHttpRequest`,可以用来异步加载和发送XML数据。 6. **StAX(Streaming API for XML)**: StAX是另一种基于流的解析器,...

    JAVA代码注释规范codetemplates.xml

    JAVA代码注释规范codetemplates.xml,可直接导入Eclipse,代码注释效果很棒!

    XML生成java代码工具

    可以通过xml文件直接生成对应的java类文件。 运行需要jre

    xml 转Java bean工具

    它可能是通过命令行界面或图形用户界面操作,用户只需要提供XML文件,工具就能自动生成对应的Java Bean代码。 标签"xml 转 Java bean"明确了这个工具的核心功能,即XML数据的解析和转换。这个标签有助于开发者在...

    JAXB工具类 xml转为java对象 java对象转为xml

    它使得在Java应用程序中使用XML数据变得更加方便,无需手动编写大量的转换代码。本教程将详细介绍JAXB如何实现XML到Java对象以及Java对象到XML的转换。 ### JAXB概述 JAXB提供了一种自动化的机制,将XML Schema...

    java实现xml解析word文档代码实现

    Java 实现 XML 解析 Word 文档代码实现 基于给定的文件信息,我们可以总结出以下知识点: 1. Java 实现 XML 解析 Word 文档 Java 可以使用多种方式来解析 Word 文档,包括使用 Apache POI 库、Java2Word 库等。...

    java操作xml文件的一个简单代码

    以下是一些关于如何使用Java处理XML文件的关键知识点: 1. **JAXB(Java Architecture for XML Binding)**:JAXB是Java平台的标准API,用于在Java对象和XML之间进行绑定。它提供了将Java对象转换为XML文档(对象到...

    java代码-使用java解决JTree访问XML的源代码

    java代码-使用java解决JTree访问XML的源代码 ——学习参考资料:仅用于个人学习使用!

    Java 使用Tcpip 发送XML文件

    本项目关注的是如何使用Java通过TCP/IP协议发送XML文件。TCP/IP(Transmission Control Protocol/Internet Protocol)是一种通信协议,是互联网的基础,确保数据在不同网络间的可靠传输。 首先,我们需要了解Java中...

    java导入导出xml文件

    例如,如果知道每个XML文件包含特定的元素,可以编写代码直接查找并处理这些元素,而不是遍历整个文档。 总的来说,Java提供了强大的工具集来处理XML文件。无论是导入还是导出,选择合适的解析器和API能有效提高...

    java代码-使用java解决XML2JTree的源代码

    java代码-使用java解决XML2JTree的源代码 ——学习参考资料:仅用于个人学习使用!

    java_dom解析xml xml java

    ### Java DOM 解析 XML 在Java中,DOM(Document Object Model)是一种用于处理XML文档的标准接口。通过DOM,我们可以将整个XML文档加载到内存中,并对其进行读取、修改等操作。这种方式非常适合那些需要对XML文档...

    Android String.xml标签在java代码中的引用

    ### Android String.xml标签在java代码中的引用 #### 概述 在Android开发中,为了方便进行国际化处理以及统一管理应用内的字符串资源,开发者通常会将应用程序中的文本信息存放在`res/values/strings.xml`文件中。...

    java 解析xml 多级

    Java作为一种广泛使用的后端编程语言,提供了多种方式来解析XML文档,使得处理多级嵌套的数据变得可能。本文将详细讲解如何在Java中解析XML,特别是针对多级结构的情况。 首先,Java提供了两种主要的API来处理XML:...

Global site tag (gtag.js) - Google Analytics