获取 XML 格式的 xslt 转换文件的输出
我已使用 XSLT 将一个 XML 文件转换为另一个 XML 文件(采用所需的结构)。但是我无法查看 XML 格式的转换后的文件。它向我显示纯文本值。
这是我的原始 XML 文件:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="xsl.xsl"?>
<NewDataSet>
<Table>
<IMPORT_ID>2</IMPORT_ID>
<SEQ_NO>1</SEQ_NO>
<LEVEL_TAG>RANDOMISATIONDATA</LEVEL_TAG>
<INSERTED>2004-01-21T12:42:53+05:30</INSERTED>
<INSERTED_BY>kfsv433</INSERTED_BY>
</Table>
</NewDataSet>
我使用以下 XSLT 将其转换为我想要的输出:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="IMPORT_ID">
<IMPORT_ID SEQ_NO="{SEQ_NO/text()}"/>
</xsl:template>
</xsl:stylesheet>
我得到输出,因为
1RANDOMISATIONDATA2004-01-21T12:42:53+05:30kfsv433
我可以看到我实现的 XSLT 显示了正确的结果,但我需要以 XML 格式获取它。
请帮助我。
I have transformed one XML file to an another XML file (in desired structure) using XSLT. However i am unable to view the transformed file in XML format. It shows me plain text values.
This is my original XML file :
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="xsl.xsl"?>
<NewDataSet>
<Table>
<IMPORT_ID>2</IMPORT_ID>
<SEQ_NO>1</SEQ_NO>
<LEVEL_TAG>RANDOMISATIONDATA</LEVEL_TAG>
<INSERTED>2004-01-21T12:42:53+05:30</INSERTED>
<INSERTED_BY>kfsv433</INSERTED_BY>
</Table>
</NewDataSet>
And i coverted it to my desired output using the following XSLT :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="IMPORT_ID">
<IMPORT_ID SEQ_NO="{SEQ_NO/text()}"/>
</xsl:template>
</xsl:stylesheet>
I get the output as
1RANDOMISATIONDATA2004-01-21T12:42:53+05:30kfsv433
I can see that what ever XSLT i have implemented is showing the correct result but i need to get this in XML format.
Kindly help me.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我认为您想要这个:
当此转换应用于提供的 XML 文档时:
生成所需的结果:
解释:
所有文本节点都与空正文的模板匹配,这会覆盖默认的 XSLT 处理,因此文本节点现在不会复制到输出中。
SEQ_NO
不是IMPORT_ID
的子级 - 它是同级。I think you want this:
when this transformation is applied on the provided XML document:
the wanted result is produced:
Explanation:
All text nodes are matched by a template with empty body, which overrides the default XSLT processing, so the text nodes are now not copied to the output.
SEQ_NO
is not a child ofIMPORT_ID
-- it is a sibling.不要使用浏览器。使用真正的 xslt 处理器,例如 http://saxon.sourceforge.net。
Do not use a browser. use a real xslt processor such as http://saxon.sourceforge.net.
您将获得默认输出,这意味着您的 IMPORT_ID 模板未执行。
请尝试使用以下模板:
You are getting the default output, which means that your IMPORT_ID template is not executing.
Try the following templates instead: