Мне нужно удалить внутри атрибута одного тега xml.и для этого я нахожу решение использовать xslt:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="node()">
<xsl:copy>
<xsl:apply-templates select="node()|@*" />
</xsl:copy>
</xsl:template>
<xsl:template match="@*">
<xsl:attribute name="{local-name()}">
<xsl:apply-templates select="node()|@*" />
</xsl:attribute>
</xsl:template>
, оно работает хорошо, даже слишком много, потому что после процедуры удаления необходимые атрибуты становятся без префикса, но и без содержимого.По какой-то причине префикс и содержимое усекаются, остается только пустой атрибут, например, attr "xsi: type", префикс которого следует удалить:
<out:Declarant xsi:type="out:RequestAccount">
ожидалось следующее:
<out:Declarant type="out:RequestAccount">
но получил вот это:
<out:Declarant type="">
Я не понимаю, почему удаляется содержимое "type"?
вот где мой xsd файл для xmls: xsd image