我有一个要求,我需要使用 java 将给定的正确 xml 转换为不正确的格式。
我收到的 Xml 类似于
<?xml version="1.0" encoding="utf-8" ?>
<start>
<level>5</level>
<mode>passive</mode>
<directory>home/lib/dir</directory>
<reach_port>8888</reach_port>
<languages default="en">en,ar,bn</languages>
<Server_port>8800</Server_port>
<reset_time>180</reset_time>
<refresh_rate>10</refresh_rate>
</start>
我需要将其转换为以下格式
<?xml version="1.0" encoding="utf-8" ?>
<1start> -> XML Tag is starting with number
<level>5</level>
<mode>passive</mode>
<directory>home/lib/dir</directory>
<reach_port="8888"/> -> Syntax is not recognizable
<languages default="en">en,ar,bn</languages>
<Server_port="8800"/> -> Syntax is not recognizable
<reset_time="180"/> -> Syntax is not recognizable
<refresh_rate="10"/> -> Syntax is not recognizable
</1start>
我需要严格遵守这种格式,因为进一步的依赖关系需要这种格式的 xml。 我不知道如何继续,因为我想不出任何标准方法,关于最佳处理方法的任何建议。
最佳答案
布莱克!欢迎来到现实世界的软件工程:(。如果我正确理解了这个问题,你唯一的要求就是生成这个废话,而不是解析它。算上你的祝福吧!JB尼泽绝对正确,你不应该被迫这样做,但有时你别无选择。如果每次我不得不类似地补偿外部团体的无能,我都能得到一毛钱……
在架构方面,关键的事情(显然)是在系统的最边缘放置一个垃圾隔离层,即在系统范围内以合理的方式处理所有内容,并将此标签汤格式保留到最后阶段输出。从表面上看,您已经在这样做了。
像这样的 XSLT 模板可以工作:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/start">
<xsl:text><1start></xsl:text>
<xsl:apply-templates/>
<xsl:text></1start></xsl:text>
</xsl:template>
<xsl:template match="/start/level">
<xsl:text><level></xsl:text>
<xsl:value-of select="text()"/>
<xsl:text></level></xsl:text>
</xsl:template>
<xsl:template match="/start/reach_port">
<xsl:text><reach_port="</xsl:text>
<xsl:value-of select="text()"/>
<xsl:text>"/></xsl:text>
</xsl:template>
<!-- process other elements in the same way -->
</xsl:stylesheet>
关于java - 将正确的 xml 转换为不正确的 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32578893/