我使用以下命令序列化节点:
<xsl:template match="*" mode="serialize">
<xsl:text><</xsl:text>
<xsl:value-of select="name()"/>
<xsl:text>></xsl:text>
<xsl:apply-templates mode="serialize"/>
<xsl:text></</xsl:text>
<xsl:value-of select="name()"/>
<xsl:text>></xsl:text>
</xsl:template>
序列化节点后有没有办法保留属性?
答案 0 :(得分:1)
根据您的XSLT处理器,您可能首先要检查是否支持XPath 3.0 OrigValue NewValue FieldName
Finance Resarch Dept
Manager Entry Position
9 10 Cost
函数https://www.w3.org/TR/xpath-functions-30/#func-serialize或内置扩展函数来完成这项工作。
如果您想使用XSLT执行它,那么在您的模板中,您还需要处理属性,例如:
serialize
请注意,像http://lenzconsulting.com/xml-to-string/这样的解决方案存在并且可能比使用某些模板作为正确的序列化的快速尝试更好,这些序列化确实产生了命名空间格式良好的XML,往返是一个相当大的挑战。