1.删除所有值为空或值长度<1的节点属性,如示例所示:
应变为
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:if test=". != ''">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:if>
</xsl:template>
</xsl:stylesheet>
<pr:WorkingHoursInfo>
<pr:WorkingHoursList>
<pr:WorkingHours dayOfweek="MONDAY">
</pr:WorkingHours>
<pr:WorkingHours dayOfweek="TUESDAY">
</pr:WorkingHours>
<pr:WorkingHours dayOfweek="WEDNESDAY">
</pr:WorkingHours>
<pr:WorkingHours dayOfweek="THURSDAY">
</pr:WorkingHours>
<pr:WorkingHours dayOfweek="FRIDAY">
</pr:WorkingHours>
<pr:WorkingHours dayOfweek="SATURDAY">
</pr:WorkingHours>
<pr:WorkingHours dayOfweek="SUNDAY">
</pr:WorkingHours>
</pr:WorkingHoursList>
</pr:WorkingHoursInfo>
<pr:WorkingHoursInfo>
</pr:WorkingHoursInfo>
所以如果可能的话,我应该一次完成这两个转换。我目前被困在这个#2任何帮助都是学徒
问题更新:
PerMartin Honnen
应答将xsl文件更改为:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@*[not(normalize-space())]"/>
<xsl:template match="*[not(*/*) and not(*[normalize-space()])]"/>
</xsl:stylesheet>
来自Martin Honnen
几乎工作,所以1
工作,2
工作(几乎)。一个例外是,没有子元素且没有文本值的单个元素不会被移除,即:
这也应该删除。所以差不多起作用了。
你从
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
然后为您的任务添加模板。
<xsl:template match="@*[not(normalize-space())]"/>
确保删除空属性,并且
<xsl:template match="*[not(normalize-space()) and not(*/*) and not(*[normalize-space()])]"/>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@*[not(normalize-space())]"/>
<xsl:template match="*[not(normalize-space()) and not(*/*) and not(*[normalize-space()])]"/>
</xsl:stylesheet>
<pr:root
xmlns:pr="http://example.com/pr">
<pr:WorkingHoursInfo>
<pr:WorkingHoursList>
<pr:WorkingHours dayOfweek="MONDAY">
</pr:WorkingHours>
<pr:WorkingHours dayOfweek="TUESDAY">
</pr:WorkingHours>
<pr:WorkingHours dayOfweek="WEDNESDAY">
</pr:WorkingHours>
<pr:WorkingHours dayOfweek="THURSDAY">
</pr:WorkingHours>
<pr:WorkingHours dayOfweek="FRIDAY">
</pr:WorkingHours>
<pr:WorkingHours dayOfweek="SATURDAY">
</pr:WorkingHours>
<pr:WorkingHours dayOfweek="SUNDAY">
</pr:WorkingHours>
</pr:WorkingHoursList>
</pr:WorkingHoursInfo>
<pr:Text default="" approved="true" type="">Mon-Sun 12HR</pr:Text>
<pr:DescriptionAttribute Type="PRIMARY"/>
</pr:root>
<pr:root xmlns:pr="http://example.com/pr">
<pr:WorkingHoursInfo>
</pr:WorkingHoursInfo>
<pr:Text approved="true">Mon-Sun 12HR</pr:Text>
</pr:root>
问题内容: 输入XML 输出Json 如何编写通用的xslt样式表,它将输入的xml转换为json 输入可能在根目录下有太多结果,在结果下可能有系统和名称,在系统下还有ID名称和值。 问题答案: 我从此处复制并粘贴的以下XSLT 应该可以帮助您将XML转换为JSON。谢谢 :)
我有以下xml。 我想要的是 我想做的是只使用名称空间xmlns:i=”获取节点GetPatientTreatmentTeamResult下的文本(该节点在不同的调用中会有所不同)http://www.w3.org/2001/XMLSchema-instance(所有调用都有这个)并且不使用实际的节点名。 我尝试过使用XmlParser和XmlSlurper 但我一直没能得到我想要的结果。 我该怎
本文向大家介绍Python将xml和xsl转换为html的方法,包括了Python将xml和xsl转换为html的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python将xml和xsl转换为html的方法。分享给大家供大家参考。具体分析如下: 这里需要用libxml2,所以还要先安装了libxml2模块才能使用。代码如下: 希望本文所述对大家的Python程序设计有所帮助。
我有一个xml文档(输入文件不能更改),我需要用xsl转换到另一个xml。输入xsl有一个CDATA,如以下示例结构所示: 预期结果如下: 我的Xslt看起来像: 问题是xslt无法识别CDATA中的标记。如何为每个应用某种禁用输出转义?或者其他方法来解决这个问题?
本文向大家介绍如何在XML文档上应用XSL转换?,包括了如何在XML文档上应用XSL转换?的使用技巧和注意事项,需要的朋友参考一下 <X:变换>标记适用于一个XML文档XSL转换。 属性 <X:变换>标签具有以下属性- 属性 描述 需要 默认 doc XSLT转换的源XML文档 没有 身体 docSystemId 原始XML文档的URI 没有 没有 xslt XSLT样式表提供转换说明 是 没有