XSLT,向生成的 xml 文件的根节点添加属性
我使用 xslt 将两个 xml 文件添加在一起,然后生成的 xml 文件应符合架构。我可以将两个 xml 文件添加在一起,但结果应该在根元素中具有 noNamespaceSchemaLocation="file:///osba.xsd" ass 属性。
这是我的 .xsl 文件:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="ISO-8859-1" indent="yes" />
<xsl:variable name="with" select="'reception.xml'" />
<xsl:template match="@*|node()" >
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="bd">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
<xsl:variable name="info" select="document($with)/reception/bd[title=current()/title]/." />
<xsl:for-each select="$info/*">
<xsl:if test="name()!='title'">
<xsl:copy-of select="." />
</xsl:if>
</xsl:for-each>
</xsl:copy>
</xsl:template>
</xsl:transform>
我想添加如下内容:
<xsl:template match="/*" >
<xsl:attribute name="noNamespaceSchemaLocation"><![CDATA[file:///I:/IMY%20Project/XML%20Files/osba.xsd]]></xsl:attribute>
<xsl:apply-templates/>
我还没有找到任何方法来匹配当前元素是否为根,我还在考虑是否可以在第一个 xsl:template 中放置 xsl:if test="root" 类型的处理。
感谢您的帮助
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
像这样的东西:
Something like this: