Удалите символы подчеркивания и другие пространства имен из XML-тегов и преобразуйте их в строку camelCase.

У меня есть xml, как показано ниже, в массиве байтов

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

который мне нужно преобразовать в

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

Какие-либо предложения?

Я пытаюсь разобрать приведенный выше xml в java-объект, используя JAXB. Но поскольку имена тегов xml имеют подчеркивание, они не применяются к свойствам java.

Поэтому я подумал о том, чтобы использовать манипуляции со строками, прежде чем разбирать содержимое. Есть ли лучший способ сделать это?

Файл Java расширяет XSDClass, имеет getBranchName и getBranchType и т. д. Это не объекты, сгенерированные JAXB, и не имеющие никаких аннотаций. Я хотел бы разобрать xml без изменения классов java.


person Raghu    schedule 29.08.2017    source источник


Ответы (1)


Если вы знаете структуру 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>
person Xstian    schedule 30.08.2017