`

Groovy解析xml

阅读更多

Groovy解析xml,解析过程超简洁

方式1:

static main(args) {
		File xmls =new File("");
		def asset = new XmlParser().parse("c:/CCTV1_20120523_185942738_770297_117912.xml");
		def title=asset.title[0].text()
		def keywords=asset.keywords[0].text()
		def coloumnName=asset.coloumnName[0].text()
		def categoryName=asset.categoryName[0].text()
		def duration=asset.duration[0].text()
		def imagePath=asset.imagePath[0].text()
		println title
		println keywords
		println coloumnName
		println categoryName
		println duration
		println imagePath
	}

 方式2:

 

static main(args){
		def books = new XmlParser().parse("c:/b.xml");
		def bookss = books.book;
		def specialBook = bookss[3];
		books.book.each {
			def bookid = it.attributes().get("bookid");
			println bookid;
			def properties = specialBook.position[0].property; 
			properties.each {
				   println "-------------------"
				   println it.'@name';
				   println it.text();
				   println "-------------------"
				}
		}
	}

 两个xml文件如下:

 

CCTV1_20120523_185942738_770297_117912.xml

 

<?xml version='1.0' encoding='utf-8' ?>
<Asset>
	<uuid>882657bc-698f-4a71-9d3a-3c95f4138c63</uuid>
	<id></id>
	<playTime><![CDATA[2012-05-23 19:01:40]]></playTime>
	<author>TVM</author>
	<language>Chinese</language>
	<title><![CDATA[纪念同志《在延安文艺座谈会上的讲话》发表70周年座谈会在京召开]]></title>
	<content><![CDATA[]]></content>
	<keywords><![CDATA[纪念部]]></keywords>
	<channelCName>CCTV-1</channelCName>
	<channelName>CCTV1</channelName>
	<coloumnName>新闻联播</coloumnName>
	<imagePath><![CDATA[News/JPG/CCTV1/2012/05/23/CCTV1_20120523_185942738_770297_117912.jpg]]></imagePath>
	<categoryName>时政</categoryName>
	<categoryId>25</categoryId>
	<columnId>16</columnId>
	<channelId>16</channelId>
	<duration>290232</duration>
	<updateTime><![CDATA[2012-05-23 19:23:52]]></updateTime>
	<AssetFiles>
		<fileCount>9</fileCount>
		<file>
			<fileFormat>AVI</fileFormat>
			<filePath><![CDATA[News/AVI/CCTV1/2012/05/23/CCTV1_20120523_185942738_770297_117912.avi]]></filePath>
			<videoCodec>Xvid</videoCodec>
			<videoFrameRate>25</videoFrameRate>
			<videoBitRate>1500</videoBitRate>
			<width>704</width>
			<hight>576</hight>
			<audioCodec>MEPG</audioCodec>
			<audioBitRate>128</audioBitRate>
			<audioFrequency>44100</audioFrequency>
			<duration>290232</duration>
			<fileSize></fileSize>
		</file>
		<file>
			<fileFormat>FLV</fileFormat>
			<filePath><![CDATA[News/FLV/CCTV1/2012/05/23/CCTV1_20120523_185942738_770297_117912.flv]]></filePath>
			<videoCodec>H.263</videoCodec>
			<videoFrameRate>25</videoFrameRate>
			<videoBitRate>100</videoBitRate>
			<width>320</width>
			<hight>240</hight>
			<audioCodec>MEPG</audioCodec>
			<audioBitRate>64</audioBitRate>
			<audioFrequency>44100</audioFrequency>
			<duration>290232</duration>
			<fileSize></fileSize>
		</file>
		<file>
			<fileFormat>NFLV</fileFormat>
			<filePath><![CDATA[News/NFLV/CCTV1/2012/05/23/CCTV1_20120523_185942738_770297_117912.flv]]></filePath>
			<videoCodec>H.264</videoCodec>
			<videoFrameRate>25</videoFrameRate>
			<videoBitRate>400</videoBitRate>
			<width>480</width>
			<hight>360</hight>
			<audioCodec>MEPG</audioCodec>
			<audioBitRate>32</audioBitRate>
			<audioFrequency>44100</audioFrequency>
			<duration>290232</duration>
			<fileSize></fileSize>
		</file>
		<file>
			<fileFormat>MP4_MAIN</fileFormat>
			<filePath><![CDATA[News/MP4_MAIN/CCTV1/2012/05/23/CCTV1_20120523_185942738_770297_117912.mp4]]></filePath>
			<videoCodec>AVC</videoCodec>
			<videoFrameRate>25</videoFrameRate>
			<videoBitRate>512</videoBitRate>
			<width>400</width>
			<hight>300</hight>
			<audioCodec>AAC</audioCodec>
			<audioBitRate>48</audioBitRate>
			<audioFrequency>48000</audioFrequency>
			<duration>290232</duration>
			<fileSize></fileSize>
		</file>
		<file>
			<fileFormat>MP4</fileFormat>
			<filePath><![CDATA[News/MP4/CCTV1/2012/05/23/CCTV1_20120523_185942738_770297_117912.mp4]]></filePath>
			<videoCodec>AVC</videoCodec>
			<videoFrameRate>25</videoFrameRate>
			<videoBitRate>250</videoBitRate>
			<width>352</width>
			<hight>288</hight>
			<audioCodec>AAC</audioCodec>
			<audioBitRate>32</audioBitRate>
			<audioFrequency>44100</audioFrequency>
			<duration>290232</duration>
			<fileSize></fileSize>
		</file>
		<file>
			<fileFormat>JPG</fileFormat>
			<filePath><![CDATA[News/JPG/CCTV1/2012/05/23/CCTV1_20120523_185942738_770297_117912.jpg]]></filePath>
			<width>704</width>
			<hight>576</hight>
			<fileSize></fileSize>
		</file>
		<file>
			<fileFormat>SJPG</fileFormat>
			<filePath><![CDATA[News/SJPG/CCTV1/2012/05/23/CCTV1_20120523_185942738_770297_117912.jpg]]></filePath>
			<width>96</width>
			<hight>72</hight>
			<fileSize></fileSize>
		</file>
		<file>
			<fileFormat>MTG</fileFormat>
			<filePath><![CDATA[News/MTG/CCTV1/2012/05/23/CCTV1_20120523_185942738_770297_117912.mtg]]></filePath>
			<fileSize></fileSize>
		</file>
		<file>
			<fileFormat>TMF</fileFormat>
			<filePath><![CDATA[]]></filePath>
			<fileSize></fileSize>
		</file>
	</AssetFiles>
</Asset>

  b.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<books location="theLocation">
  <book bookid="1" mark="4">Java in action</book>
  <book bookid="2" mark="3">Groovy in action</book>
  <book bookid="3" mark="2">JavaScript in action</book>
  <book bookid="4">
      <position url="http://">
         <property name="propertiName1">Hello</property>
         <property name="propertiName2">World</property>
      </position>
  </book>
</books>

 

 

分享到:
评论

相关推荐

    xstream_dom4j_jdom_groovy解析xml

    在IT行业中,XML(eXtensible ...在压缩包中的"Tests"文件可能是测试用例,用于演示这些库在解析XML时的实际应用。通过运行这些测试,开发者可以更直观地了解每个库的用法,并掌握它们在处理不同XML场景下的表现。

    Groovy 动态修改XML

    1. **解析XML**:首先,使用XMLSlurper或XMLParser将XML字符串或文件转换为Groovy的DOM(文档对象模型)表示。例如: ```groovy def xml = new XmlSlurper().parseText('&lt;xml&gt;&lt;node&gt;text&lt;/node&gt;&lt;/xml&gt;') ``` 2. *...

    groovy-xml-2.2.0-beta-1.zip

    "groovy-xml-2.2.0-beta-1.zip" 文件是Groovy的一个版本,专注于XML处理功能,特别适用于在Groovy中解析、操作和生成XML文档。这个版本为2.2.0的beta-1,意味着它是该版本系列中的早期测试版,开发者可能在其中寻找...

    Groovy和Xquery脚本JSON和XML解析工具

    脚本解析工具,可使用Groovy或Xquery解析JSON报文或XML报文

    Dom方式解析XML

    - **解析XML文件**:然后,使用`DocumentBuilder`解析XML文件,得到`Document`对象,表示整个XML文档。 ```java File xmlFile = new File("path_to_xml_file"); Document document = builder.parse(xmlFile); `...

    解析XML的dom、sax和dom4j的jar包

    在Java中,解析XML有多种方法,主要包括DOM、SAX和DOM4J。下面将详细介绍这三种解析方式及其对应的jar包。 1. DOM (Document Object Model) DOM是一种基于树形结构的XML解析方法,它将整个XML文档加载到内存中,...

    Android开发-Retrofit-AndroidStudio(四)simplexml解析XML_免积分

    在本教程中,我们将深入探讨如何在Android Studio项目中使用Retrofit与simplexml库一起解析XML数据。简单XML库(Simple XML)是Java中一个轻量级、高效的XML序列化和反序列化库,非常适合处理XML格式的数据。 首先...

    Android PULL解析XML

    本文将深入探讨如何使用PULL解析XML,并结合ButterKnife库进行视图绑定。首先,我们来理解什么是PULL解析。 PULL解析是一种事件驱动的解析方式,由Android SDK提供。它与SAX解析类似,但更适用于移动设备,因为内存...

    dom4j解析XML所需要的包

    在Java环境中,解析XML文档通常需要引入特定的库,DOM4J就是其中之一。下面我们将深入探讨DOM4J解析XML的基本概念、使用方法以及它与其他XML解析器的比较。 XML(eXtensible Markup Language)是一种标记语言,广泛...

    Xstream生成和解析xml.rar

    本篇文章将详细介绍如何利用Xstream进行XML的生成和解析。 **一、Xstream简介** Xstream是Java社区中的一款开源库,由Johannes Link创建,它的设计目标是使XML序列化和反序列化变得简单直观。Xstream的核心理念是...

    用pullXML解析本地数据并存在本地

    PullXML解析器是Android系统提供的一种轻量级的XML解析方法,它适用于处理大量的XML数据,特别是当内存有限或需要高效处理流式数据时。本文将深入探讨如何使用PullXML解析本地XML数据,并将解析后的数据存回本地。 ...

    Dom4j解析xml文件

    **DOM4J解析XML文件** XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件和文档存储等领域。DOM4J是Java社区中一个流行的、功能丰富的XML处理库,它提供了灵活且高效的...

    Pull解析xml文件

    Pull解析是一种轻量级的解析XML的方式,尤其适合在内存有限的移动设备上使用。本篇文章将深入探讨Android中的Pull解析技术,以及如何通过一个简单的Demo来实现XML文档的解析。 Pull解析器(PullParser)是Android ...

    java解析XML dom4j dom4j-1.6.1.jar

    Java解析XML时,dom4j是一个非常流行的库,它提供了灵活且强大的API来处理XML文档。dom4j-1.6.1.jar是这个库的一个版本,发布于2005年,它支持XML的读取、写入、操作以及查询功能。在本文中,我们将深入探讨dom4j的...

    JDOM解析本地XML

    3. **解析XML文件**:使用`SAXBuilder`或者`JDOMBuilder`可以解析XML文件到一个`Document`对象。例如: ```java SAXBuilder builder = new SAXBuilder(); File xmlFile = new File("path_to_your_xml_file.xml");...

    androidDom4J解析xml

    在这个主题中,我们将深入探讨如何在Android环境中使用Dom4J库来解析XML文件。 首先,我们需要了解XML的基本结构。XML(eXtensible Markup Language)是一种标记语言,通过标签(Tags)定义元素(Elements),元素...

    基于java的用jdom解析xml.zip

    本教程将深入讲解如何在Java中使用JDOM库来解析XML文件。 首先,我们需要了解JDOM库。JDOM是Java Document Object Model的简称,它提供了一个全面且高性能的API,专门用于处理XML文档。JDOM的设计目标是使XML处理...

    saxreader 解析 XML

    在Android移动开发中,解析XML是一项常见的任务,用于处理服务器返回的数据或本地存储的信息。XML(eXtensible Markup Language)是一种标记语言,它结构清晰、可读性强,适合数据交换和存储。在这个场景中,我们...

    groovy-all

    8. **Groovy HTML and XML Processing**: 提供了简洁的API来处理HTML和XML文档,如GPath和XmlSlurper。 9. **Grails Integration**: 虽然未明确提及,但Groovy常用于构建Grails框架的应用,这是一个基于Groovy的...

    基于Java的实例源码-用jdom解析xml.zip

    本实例是关于如何使用Java中的JDOM库来解析XML文档的源码示例。 JDOM是一个专门为Java设计的XML处理库,它提供了简单且高效的API,使得开发者能够方便地读取、修改和创建XML文档。以下是对基于Java的JDOM解析XML的...

Global site tag (gtag.js) - Google Analytics