Я создал скрипт xslt, который возьмет любой скрипт xml и преобразует текстовые узлы в элементы в атрибуты этих элементов. Элементы будут иметь только дочерние элементы или текстовые узлы, но не имели бы атрибуты или что-нибудь еще, например,xslt Преобразование текстовых узлов в атрибуты
<example>
<A>12</A>
<B></B>
<example>
должен в конечном итоге выглядит как:
<example>
<A Val='12'></A>
<B></B>
<example>
здесь мой сценарий это в основном имеет два сослагательного наклонения говоря, если элемент имеет текстовый узел создать новый элемент с тем же именем, но сделать текст атрибута в противном случае, если оно не просто скопировать элемент
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL /Transform">
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:for-each select="*">
<xsl:when test="./text()"/>
<xsl:element name="{local-name()}" >
<xsl:attribute name="Val">
<xsl:value-of select="normalize- space(text())"/>
</xsl:attribute>
</xsl:element>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="."/>
</xsl:otherwise>
</xsl:for-each>
</xsl:template>
xmls будет более сложным, чем мой пример.
Имеет ли ваш фактический xml смешанный контент (элемент с текстом и дочерними элементами элемента)? Если да, то как следует обращаться с ними? –
да это, текст должен стать атрибутом родительского – bdanger
Так ' некоторых текст некоторые б текста более текста' 'становится «'или ?? –