`
agile_boy
  • 浏览: 558265 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

通过属性字符格式来访问GPath格式的Xml

阅读更多
  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中文社区
1
3
分享到:
评论

相关推荐

    C# 方式生成xml格式字符串

    生成xml格式字符串、序列化XML 对象=》XML文本、反序列化 XML文本=》对象 等方法,对象和xml之间的相互转换、datatable方式转换为xml文本的工具类方法 C#语言

    格式化xml字符串,并生成xml文件

    本文将围绕“格式化XML字符串并生成XML文件”这一主题展开,结合提供的标签“源码”和“工具”,探讨如何通过Java编程实现这一功能。 首先,我们有两个Java源代码文件,即`XMLFileUtil.java`和`XMLFormatUtil.java`...

    实体类生成XML格式字符串

    在Java编程中,有时我们需要将实体类对象转换成XML格式的字符串,这在数据交换...总的来说,Java提供了一套完整的工具链来帮助开发者将实体类转换为XML格式的字符串,这使得在Java应用程序中处理XML数据变得更加便捷。

    将string类型xml字符串转为json字符串

    例如,XML属性需要被转换为JSON中的子对象,而命名空间处理可能需要额外的逻辑。在实际应用中,可能需要根据具体需求对转换过程进行定制。 总结来说,将string类型的XML字符串转换为JSON字符串是通过解析XML字符串...

    字符串转化为XML文件

    字符串转化为XML文件 本文将详细介绍字符串转化为XML文件的知识点,包括XML文件的基本结构、StringBuilder类的使用、XML文档对象模型(DOM)、XML文件的保存等。 XML文件的基本结构 XML(Extensible Markup ...

    java解析xml字符串

    在给定的代码示例中,我们看到了如何使用JDOM库来解析一个XML字符串,并对其进行操作。下面我们将详细解析这个过程: 1. **初始化XML源**:首先,将XML字符串转化为`StringReader`对象,这是为了将字符串转换为可以...

    delphi格式化xml文件demo

    这个函数通常会接受一个XML字符串作为输入,然后通过添加适当的换行符和缩进来使其更易读。实现这样的功能可能涉及到对XML字符串的逐行解析,检查节点类型,并在适当的地方插入换行和缩进。 在Delphi XE7中,你可以...

    Json和Xml离线格式化工具

    掌握JSON和XML的格式化工具对于开发者来说至关重要,因为它们能够帮助快速定位问题、调试代码和理解复杂的数据结构。在处理大型或复杂的JSON和XML文档时,这类工具能够大大提高工作效率,减少因数据格式错误引发的...

    解析xml格式字符串

    计息xml格式的字符串,封装到Map,Object&gt;集合中

    微信小程序-xml字符串转换json格式,适用于微信小程序

    xml字符串转换json格式 可用于微信小程序xml字符串转换json格式 安装 npm方式安装 npm install --save xmlstring2json bower方式安装 bower install xmlstring2json 用法示例: bookstore.xml文件 &lt;title&gt;...

    rsa加密串转C#的xml格式

    生成的RSA参数可以使用`ToXmlString()`方法转换为XML格式的字符串。例如,以下代码将公钥和私钥转换为XML格式: ```csharp RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); rsa....

    解析XML特殊字符方法

    如果解析器发现未转义的特殊字符,它会抛出错误,因为这可能表示XML文档格式不正确。确保正确编码特殊字符是防止解析错误的关键。 **4. CDATA区** 除了实体引用,XML还提供了一种特殊的结构——CDATA区(Character...

    PB解析XML字符串 把XML 变为数据窗口

    在PB中解析XML字符串,通常是通过内置的XML处理函数或者第三方库来实现的,这样可以将XML文档的节点和属性映射到数据窗口的列和行,从而便于数据的访问和操作。 解析XML字符串的过程通常包括以下步骤: 1. 加载XML...

    Android 对 strings.xml 的字符串进行格式化

    在Android开发过程中,为了实现应用的国际化或多语言支持,开发者通常会使用`strings.xml`文件来存储各种字符串资源。这些字符串资源不仅可以被直接引用显示在界面上,还可以通过格式化的方式动态填充变量值,从而...

    c#生成XML字符串

    c#生成XML字符串,简单易懂,中间过程不生成XML文件,不用担心多个操作的访问问题,返回结果为标准的XMl格式。

    XML格式化(换行,缩进)

    具体而言,通过创建一个XmlDocument对象并加载XML字符串,然后使用XmlTextWriter进行写入操作,并设置Formatting属性为Indented,即可实现XML文档的自动换行和缩进。 以下是对上述代码片段的逐行分析: 1. `string...

    前端基于xml报文格式化工具

    而前端开发中,有时我们需要处理和展示XML报文,这就需要使用到特定的工具来帮助我们进行格式化和解析。"前端基于xml报文格式化工具"就是这样的一个工具,它使得前端开发者能够更方便地查看、编辑和理解XML数据。 ...

    Android xml转义字符

    因此,在XML文件中使用特殊字符时,需要采用转义字符来替代。 #### 特殊字符与转义字符对应表 在Android XML资源文件中,以下是一些常用的特殊字符及其对应的转义字符: 1. **双引号** (`"`): 在XML中表示字符串...

    map/list集合转化成xml字符串 xml字符串转化成map/list集合

    同样的,你可以创建一个解析器来将XML字符串解析成`List`对象,但你需要知道预期的XML结构以便正确地构建对象。 在实际项目中,通常会有更复杂的XML结构,可能包含嵌套的Map和List,这可能需要递归方法或额外的逻辑...

    纯C语言解析xml字符串

    纯C语言解析xml字符串,有实例,保证可用,含makefile xmlparse.c xmlparse.h testxml.c 目录:/export/home/chcard/testxml 日志:/export/home/chcard/log testxml.c 是一个测试用例,包含了常用的方法,并有注解 ...

Global site tag (gtag.js) - Google Analytics