GPath方式的Xml访问,为我们的Xml处理提供了极大的灵活性和简单性,这都要归功于Groovy的简洁和强大,在此就不罗嗦了。
可是如果Xml的tag处理,你不想在你的代码里边写死,而是希望通过配置文件来灵活定制呢,让我们还是以实例来说话吧
我有一个Xml,如下:
<a>
<aa a="attrA">
<aaa1 b="attrB">aaa1Content</aaa1>
<aaa2 c="attrC">aaa2Content</aaa2>
</aa>
</a>
如果我要处理aaa2的c属性,那我需要这样的表达式:root.aa.aaa2.@c来得到这个xml元素,当然了,这么简单的用法谁都知道,可是如果我的标签并不想这样写死代码里边,我想灵活的定制,比如我以后新的Xml有aaaa.@c这样的元素呢?显然通过:root."aa.aaa2.aaaa”.@c的方式并不成功,因为GPath将"aa.aaa2.aaaa”看作是一个标签,而不是3个父子关系的标签。
其实解决办法有好多,你可以用find闭包方法,而我目前觉得用循环的方式更简单,我的全部代码如下:
def xml = """
<a>
<aa a="attrA">
<aaa1 b="attrB">aaa1Content</aaa1>
<aaa2 c="attrC">aaa2Content</aaa2>
</aa>
</a>
"""
def root = new XmlSlurper().parseText(xml)
def aa = "aa.aaa2"
def v=root
aa.split("\\.").each{
v=v."$it"
}
assert "aaa2Content"==v.text()
assert "attrC"==v.@c.text()
如果对Groovy有任何疑问,请来:
Groovy中文社区
分享到:
相关推荐
生成xml格式字符串、序列化XML 对象=》XML文本、反序列化 XML文本=》对象 等方法,对象和xml之间的相互转换、datatable方式转换为xml文本的工具类方法 C#语言
本文将围绕“格式化XML字符串并生成XML文件”这一主题展开,结合提供的标签“源码”和“工具”,探讨如何通过Java编程实现这一功能。 首先,我们有两个Java源代码文件,即`XMLFileUtil.java`和`XMLFormatUtil.java`...
在Java编程中,有时我们需要将实体类对象转换成XML格式的字符串,这在数据交换...总的来说,Java提供了一套完整的工具链来帮助开发者将实体类转换为XML格式的字符串,这使得在Java应用程序中处理XML数据变得更加便捷。
例如,XML属性需要被转换为JSON中的子对象,而命名空间处理可能需要额外的逻辑。在实际应用中,可能需要根据具体需求对转换过程进行定制。 总结来说,将string类型的XML字符串转换为JSON字符串是通过解析XML字符串...
字符串转化为XML文件 本文将详细介绍字符串转化为XML文件的知识点,包括XML文件的基本结构、StringBuilder类的使用、XML文档对象模型(DOM)、XML文件的保存等。 XML文件的基本结构 XML(Extensible Markup ...
在给定的代码示例中,我们看到了如何使用JDOM库来解析一个XML字符串,并对其进行操作。下面我们将详细解析这个过程: 1. **初始化XML源**:首先,将XML字符串转化为`StringReader`对象,这是为了将字符串转换为可以...
这个函数通常会接受一个XML字符串作为输入,然后通过添加适当的换行符和缩进来使其更易读。实现这样的功能可能涉及到对XML字符串的逐行解析,检查节点类型,并在适当的地方插入换行和缩进。 在Delphi XE7中,你可以...
掌握JSON和XML的格式化工具对于开发者来说至关重要,因为它们能够帮助快速定位问题、调试代码和理解复杂的数据结构。在处理大型或复杂的JSON和XML文档时,这类工具能够大大提高工作效率,减少因数据格式错误引发的...
计息xml格式的字符串,封装到Map,Object>集合中
xml字符串转换json格式 可用于微信小程序xml字符串转换json格式 安装 npm方式安装 npm install --save xmlstring2json bower方式安装 bower install xmlstring2json 用法示例: bookstore.xml文件 <title>...
生成的RSA参数可以使用`ToXmlString()`方法转换为XML格式的字符串。例如,以下代码将公钥和私钥转换为XML格式: ```csharp RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); rsa....
如果解析器发现未转义的特殊字符,它会抛出错误,因为这可能表示XML文档格式不正确。确保正确编码特殊字符是防止解析错误的关键。 **4. CDATA区** 除了实体引用,XML还提供了一种特殊的结构——CDATA区(Character...
在PB中解析XML字符串,通常是通过内置的XML处理函数或者第三方库来实现的,这样可以将XML文档的节点和属性映射到数据窗口的列和行,从而便于数据的访问和操作。 解析XML字符串的过程通常包括以下步骤: 1. 加载XML...
在Android开发过程中,为了实现应用的国际化或多语言支持,开发者通常会使用`strings.xml`文件来存储各种字符串资源。这些字符串资源不仅可以被直接引用显示在界面上,还可以通过格式化的方式动态填充变量值,从而...
c#生成XML字符串,简单易懂,中间过程不生成XML文件,不用担心多个操作的访问问题,返回结果为标准的XMl格式。
具体而言,通过创建一个XmlDocument对象并加载XML字符串,然后使用XmlTextWriter进行写入操作,并设置Formatting属性为Indented,即可实现XML文档的自动换行和缩进。 以下是对上述代码片段的逐行分析: 1. `string...
而前端开发中,有时我们需要处理和展示XML报文,这就需要使用到特定的工具来帮助我们进行格式化和解析。"前端基于xml报文格式化工具"就是这样的一个工具,它使得前端开发者能够更方便地查看、编辑和理解XML数据。 ...
因此,在XML文件中使用特殊字符时,需要采用转义字符来替代。 #### 特殊字符与转义字符对应表 在Android XML资源文件中,以下是一些常用的特殊字符及其对应的转义字符: 1. **双引号** (`"`): 在XML中表示字符串...
同样的,你可以创建一个解析器来将XML字符串解析成`List`对象,但你需要知道预期的XML结构以便正确地构建对象。 在实际项目中,通常会有更复杂的XML结构,可能包含嵌套的Map和List,这可能需要递归方法或额外的逻辑...
纯C语言解析xml字符串,有实例,保证可用,含makefile xmlparse.c xmlparse.h testxml.c 目录:/export/home/chcard/testxml 日志:/export/home/chcard/log testxml.c 是一个测试用例,包含了常用的方法,并有注解 ...