XmlAnalyzer 工程目的:将XML的属性和子节点按字母序排列,然后整形输出:

08.

原文=<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0</modelVersion>  <groupId>com.heyang</groupId>  <artifactId>XmlAnalyzer</artifactId>  <version>1.00</version>    <dependencies>        <dependency>            <groupId>ch.qos.logback</groupId>            <artifactId>logback-classic</artifactId>            <version>1.1.11</version>        </dependency>        <dependency>            <groupId>ch.qos.logback</groupId>            <artifactId>logback-core</artifactId>            <version>1.1.11</version>        </dependency>                <dependency>            <groupId>commons-lang</groupId>            <artifactId>commons-lang</artifactId>            <version>2.6</version>        </dependency>    </dependencies></project>
整形后文本:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<artifactId>XmlAnalyzer</artifactId>
<dependencies>
<dependency>
<artifactId>logback-classic</artifactId>
<groupId>ch.qos.logback</groupId>
<version>1.1.11</version>
</dependency>
<dependency>
<artifactId>logback-core</artifactId>
<groupId>ch.qos.logback</groupId>
<version>1.1.11</version>
</dependency>
<dependency>
<artifactId>commons-lang</artifactId>
<groupId>commons-lang</groupId>
<version>2.6</version>
</dependency>
</dependencies>
<groupId>com.heyang</groupId>
<modelVersion>4.0.0</modelVersion>
<version>1.00</version>
</project>

07.

原文=<产品列表>    <产品 编号="M09123" 名称="保暖大衣" 品牌="A" 价格="1688" 产地="上海" 材质="羊毛">        <颜色>黑色</颜色>    </产品>    <产品 编号="M09124" 名称="女式大衣" 品牌="B" 价格="899" 产地="江苏">        <颜色>黑色</颜色>        <颜色>红色</颜色>        <颜色>蓝色</颜色>    </产品>    <产品 编号="M09126" 名称="男式毛衣" 品牌="C" 价格="838" 产地="浙江">        <颜色>绿色</颜色>        <颜色>黄色</颜色>        <颜色>黑色</颜色>    </产品></产品列表>
整形后文本:
<产品列表>
<产品 产地="上海" 价格="1688" 名称="保暖大衣" 品牌="A" 材质="羊毛" 编号="M09123">
<颜色>黑色</颜色>
</产品>
<产品 产地="江苏" 价格="899" 名称="女式大衣" 品牌="B" 编号="M09124">
<颜色>黑色</颜色>
<颜色>红色</颜色>
<颜色>蓝色</颜色>
</产品>
<产品 产地="浙江" 价格="838" 名称="男式毛衣" 品牌="C" 编号="M09126">
<颜色>绿色</颜色>
<颜色>黄色</颜色>
<颜色>黑色</颜色>
</产品>
</产品列表>

06.

原文=<products count="1">    <product id="001" name="iphone20">cellphone</product>    <product id="002" name="iphone22"/></products>
整形后文本:
<products count="1">
<product id="001" name="iphone20">cellphone</product>
<product id="002" name="iphone22"/>
</products>

05.

原文=<products count="1">    <product id="001" name="iphone20">cellphone</product></products>
整形后文本:
<products count="1">
<product id="001" name="iphone20">cellphone</product>
</products>

04.

原文=<products>    <product>cellphone</product></products>
整形后文本:
<products>
<product>cellphone</product>
</products>

03.

原文=<product  编号="M09123" 名称="保暖大衣" 品牌="A" 价格="1688" 产地="上海" 材质="羊毛">cellphone    <count>0</count>    <total>123</total></product>
整形后文本:
<product 产地="上海" 价格="1688" 名称="保暖大衣" 品牌="A" 材质="羊毛" 编号="M09123">cellphone
<count>0</count>
<total>123</total>
</product>

02.

原文=<product />
整形后文本:
<product/>

01.

原文=<product  编号="M09123" 名称="保暖大衣" 品牌="A" 价格="1688" 产地="上海" 材质="羊毛">cellphone</product>
整形后文本:
<product 产地="上海" 价格="1688" 名称="保暖大衣" 品牌="A" 材质="羊毛" 编号="M09123">cellphone</product>

整体确认无误,学了BNF后解析嵌套文本是越来越轻松了. :)

--2020年5月26日--

用于测试XmlAnalyzer 1.00版的八个测试用例的更多相关文章

  1. 用于测试 JsonAnalyzer2 1.01版的测试用例

    14. 原文={"animal":"ca,t","color":"ora:nge","isMale" ...

  2. 声笔码7.00版现已进入Beta测试阶段

    声笔码7.00版现已进入Beta测试阶段,有兴趣的朋友可以试试,欢迎多提宝贵意见. 由于论坛附件限制了1M的大小所以无法上传,需要的朋友可加入声笔系列码群(QQ群号:445906697),到共享文件夹 ...

  3. VMware配置回环地址用于测试

           我们在开发过程中,很可能需要一台服务器用于测试,在这种环境下,我们很可能需要用到vmware来构建这样的开发环境.但如果当前处在一个离线,或是不在网内的环境下,我们所搭建的环境有可能无法 ...

  4. Fundebug前端JavaScript插件更新至1.6.0,新增test()方法用于测试

    摘要: 1.6.0新增fundebug.test()方法用于测试,请大家及时更新. 默认情况下,Fundebug 插件能够自动捕获未处理的错误(uncaught error).另外,开发者也可以通过使 ...

  5. 【Cocos2d-Js实战教学(1)横版摇杆八方向移动】

    本教程主要通过搭建一个横版摇杆八方向移动的实例,让大家如何用Cocos2dx-Js来做一款游戏,从基础了解Cocos2dx-Js的基本实现原理,从创建工程,到各个知识点的梳理. 教程分为上下两讲: 上 ...

  6. linux 创建虚拟块设备,制作文件系统并挂载,用于测试lustre

    1.制作块文件 3 个 [root@localhost yaoxu]# [root@localhost yaoxu]# [root@localhost yaoxu]# 2.创建回环设备 [root@l ...

  7. 【AMAD】splinter -- 用于测试web app的python框架

    简介 动机 作用 用法 热度分析 个人评分 简介 Splinter1是一个开源工具,使用Python编写,用于测试web apps.它可以用来对浏览器实现自动化操作,比如访问URLs,和按钮等交互. ...

  8. (转)用C#实现实现简单的 Ping 的功能,用于测试网络是否已经连通

    本文转载自:http://blog.csdn.net/xiamin/archive/2009/02/14/3889696.aspx 用C#实现实现简单的 Ping 的功能,用于测试网络是否已经联通 1 ...

  9. 用于测试SqlAnalyzer1.00的十七个测试用例

    SqlAnalyzer功能:解析SQL语句,具体到字段,表和条件,并将其整理后输出格式化文本. 1. 原文=select a from b 整理后文本= select a from b 2. 原文=s ...

随机推荐

  1. 17、Observer 观察者模式

    以一个实例给大家引入观察者,大家多多少少都写过html或者java中的swing.我们定义一个按钮,给他增加一个点击事件,那么这个方法是怎么被触发到呢,对了,就是利用了观察者设计模式 观察者模式 当对 ...

  2. 【模式识别与机器学习】——3.5Fisher线性判别

    ---恢复内容开始--- 出发点 应用统计方法解决模式识别问题时,一再碰到的问题之一就是维数问题. 在低维空间里解析上或计算上行得通的方法,在高维空间里往往行不通. 因此,降低维数有时就会成为处理实际 ...

  3. TortoiseGit的使用(一)

    博客园换了新颜,立刻给我的感觉就是还不如原来的老古董界面呢.没办法呀,毕竟主要是习惯了.咱也不吐槽了,慢慢地,习惯就好,博客园也在逐步改善. 目录 Git和TortoiseGit下载安装 稍微笼统地介 ...

  4. C#LeetCode刷题之#566-重塑矩阵( Reshape the Matrix)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3720 访问. 在MATLAB中,有一个非常有用的函数 resha ...

  5. 每日一道 LeetCode (14):数组加一

    每天 3 分钟,走上算法的逆袭之路. 前文合集 每日一道 LeetCode 前文合集 代码仓库 GitHub: https://github.com/meteor1993/LeetCode Gitee ...

  6. Homekit_DoHome_智能通断器

    本款通断器适用于IOS和android系统用户,苹果用户可以非常方便的使用siri进行有效控制,android用户需要下载Dohome App进行操作,同时支持市面上主流的智能音箱进行控制. 对于an ...

  7. DRF内置过滤组件与排序组件结合使用

    DRF内置过滤组件Filtering DRF提供了内置过滤组件Filtering,可以结合url路径的改变获取想要的数据,当然用户不可能在url访问路径中自己设置过滤条件,肯定是后端开发人员将前端页面 ...

  8. 【源码】RocketMQ如何实现获取指定消息

    概要 消息查询是什么? 消息查询就是根据用户提供的msgId从MQ中取出该消息 RocketMQ如果有多个节点如何查询? 问题:RocketMQ分布式结构中,数据分散在各个节点,即便是同一Topic的 ...

  9. 记一次mysql数据库被勒索(下)

    背景: nextcloud的mysql数据库被黑,删库勒索.参考:记一次mysql数据库被勒索(上) mysql数据库恢复成功,nextcloud还是无法连接.参考:记一次mysql数据库被勒索(中) ...

  10. unity探索者之微信支付,非第三方插件

    版权声明:本文为原创文章,转载请声明http://www.cnblogs.com/unityExplorer/p/8404604.html 相比微信的登录和分享功能,微信支付sdk的接入显得相当简单, ...