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日--