从XML标记中删除“下划线”和其他名称空间,并将其转换为camelCase字符串

时间:2017-08-29 15:44:55

标签: string jaxb unmarshalling

我在字节数组中有一个类似xml的文件

<branch_type>
   <branch_name></branch_name>
</branch_type>...

我需要转换成

<branchType>
   <branchName></branchName>
<branchType>...

有什么建议吗?

我正在尝试使用JAXB将上面的xml解组为java对象。 但由于xml标记名称具有下划线,因此它不会应用于java属性。

所以我想在解组内容之前先使用字符串操作。有没有更好的方法呢?

Java文件扩展XSDClass具有getBranchName和getBranchType等。它不是JAXB生成的对象,也没有任何注释。 我想在不修改java类的情况下解组xml。

1 个答案:

答案 0 :(得分:0)

如果您知道xml结构,则可以使用XSLTransformation。

<强> 模板

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:template match="/">
      <xsl:for-each select="branch_type">
      <branchType>
        <branchName><xsl:value-of select="branch_name"/></branchName>
      </branchType>
      </xsl:for-each>
</xsl:template>
</xsl:stylesheet>

<强> 输入

<branch_type>
   <branch_name>aaaa</branch_name>
</branch_type>

<强> 输出

<branchType>
   <branchName>aaaa</branchName>
</branchType>