`
agile_boy
  • 浏览: 556746 次
  • 性别: 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格式字符串

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

    xml格式的字符串转换成List

    在IT行业中,XML(eXtensible Markup Language)是一种被广泛使用的数据交换格式,它具有良好的...通过阅读博客文章“xml格式的字符串转换成List”,你可以获得更具体的实现细节和代码示例,从而加深对这一主题的理解。

    字符串转化为XML文件

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

    java解析xml字符串

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

    字符串转换成XML格式工具XmlNotepad-v2.5.rar

    总之,XmlNotepad v2.5是处理大量字符串转换为XML格式的理想工具,尤其对于需要频繁进行此类转换的IT从业者来说,它的高效和便捷性是其他工具无法比拟的。通过熟练掌握并运用这款工具,可以极大地提高工作效率,简化...

    delphi格式化xml文件demo

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

    Java格式化Xml文件

    因此,Java中提供了一些工具和方法来格式化XML文件,使其更易于理解和处理。本文将深入探讨如何使用Java来格式化XML文件。 首先,我们需要了解Java中处理XML的基本库——`javax.xml.transform`和`javax.xml.parsers...

    Json和Xml离线格式化工具

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

    解析xml格式字符串

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

    rsa加密串转C#的xml格式

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

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

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

    使用javascript解析xml文件或xml格式字符串中文WORD版

    javascript中,不论是解析xml文件,还是xml格式的字符串,都是通过DOM对象来进行操作的。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看   资源截图: 资源太大,传百度网盘了,链接...

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

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

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

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

    java 中HttpClient传输xml字符串实例详解

    在本实例中,我们将讲解如何使用HttpClient来传输XML字符串。首先,我们需要确保引入了正确的依赖,包括Apache HttpClient、HttpMime、Commons Lang以及其他的辅助库。以下是POM文件中的依赖配置: ```xml &lt;!-- ....

    c#生成XML字符串

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

    JDK自带方法解析xml特定格式的字符串

    这通常涉及到创建类属性对应XML元素,使用注解如`@XmlElement`来指定映射关系。`test1.java`则可能包含了XML解析和对象绑定的代码,通过调用`SDSWorkOrder`的相关方法实现。 总结起来,使用JDK解析XML字符串涉及...

    XML格式化(换行,缩进)

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

    xml字符串解析

    8. **序列化回XML字符串**:完成解析和操作后,可能需要将`Document`对象重新转换为XML字符串,这可以通过`OutputFormat`和`XMLWriter`实现。 ```java import org.dom4j.io.OutputFormat; import org.dom4j.io.XML...

Global site tag (gtag.js) - Google Analytics