[英]How can I replace an ID element AND all of its reference elements in an XML file using XSLT1.0
[英]How can I tell which attributes/elements in my XML file an XSLT will reference?
我有一个XSLT正在处理的XML文件,以生成另一个XML文件。
有没有一种简单的方法可以知道XSLT将引用原始XML消息以产生输出文件的所有可能的元素/属性?
如果我在w3school.com网站( http://www.w3schools.com/xsl/xsl_transformation.asp )上查看示例,则目录XML包含价格和年份等项目,但XSLT仅会提取catalog / cd /标题和目录/ cd /艺术家。
因此,我需要一种可以分析xslt(也许是输入文件模式)的
自动化魔术
工具,以便为我提供输出文件将包含的属性列表。
感谢您的协助
如果您将xslt文件更改为此
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
如果有帮助,它将显示原始文件的副本?
很好的想象力! 好。 当前没有可用的工具可以分析XSLT,并让您知道“ XSLT在XML文件中引用的所有元素/属性”! 你必须手动做..
自己制作这样的工具并不难:
添加到与元素或属性匹配的任何模板中 :
<xsl:message>
<!-- Put all the data here that identifies the element attribute,
for example the Xpath expression that selects the current node
-->
</xsl:message>
您可以使用现有的转换来获取一个节点并生成一个选择该节点的XPath表达式-在上述xsl:message
调用它们。 例如,请参见以下内容: 从XML节点java生成/获取xpath
然后,您需要将所有这些生成的XPath表达式与|
组合在一起|
运算符并评估生成的XPath表达式-这将选择转换中实际引用的所有元素和属性。
如果您还想考虑由XSLT内置模板处理的元素/属性 ,只需在转换中覆盖具有特定模板的元素/属性即可-这是一个好习惯,因为这样做有额外的好处,可能会在转换中发现错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.