У меня есть сценарий, где мне нужно преобразовать:Использование XSLT для изменения элементов атрибутов и укоротить имена
<Hand id="left">
<FingerOne>Thumb</FingerOne>
<FingerTwo>Pointer</FingerTwo>
<FingerThree>Middle</FingerThree>
</Hand>
To:
<Hand id="left" F1="Thumb" F2="Pointer" F3="Middle" />
Я использую этот кусок XSLT для преобразования теги вложенных объектов в атрибуты, и это отлично работает. Я не уверен, как изменить имена «FingerOne» на 1, «FingerTwo» на 2 и т. Д., Хотя перемещение элементов в атрибуты.
<xsl:for-each select="*">
<xsl:attribute name="{name()}">
<xsl:value-of select="text()"/>
</xsl:attribute>
</xsl:for-each>
Я нашел этот ответ https://stackoverflow.com/a/8274527/857994, который показывает, как использовать то, что в основном карту, чтобы сделать преобразование. Однако я не могу заставить его работать в моем документе.
Примечание. Я пытаюсь выполнить эту работу в Java-сборке в XSLT-функциях с использованием JAXP. Он, похоже, не поддерживает многие функции XSLT2.0, поэтому, если вы можете придерживаться XSLT1.0, я был бы очень благодарен.