gpt4 book ai didi

xml - 如何不删除空白属性

转载 作者:数据小太阳 更新时间:2023-10-29 02:35:33 24 4
gpt4 key购买 nike

我正在生成 XML 文件并使用 XSLT 删除任何空白标签或属性。

我最近对它进行了修改,我需要保留一个特定的属性,即使它是空白/空的。

这是我使用的 XLST:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="*"/>
<xsl:output indent="yes" />
<xsl:template match="@*|node()">
<xsl:if test=". != ''">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

下面是我的 XML 部分的样子。

<patientClinical noClinicalData="">
<orgFacilityCode>000200</orgFacilityCode>
<orgPatientId>123456</orgPatientId>
</patientClinical>

我希望保留“noClinicalData”属性,无论其值如何。目前,如果它为 null 或空,我的 XLST 将删除它并离开

<patientClinical>
<orgFacilityCode>000200</orgFacilityCode>
<orgPatientId>123456</orgPatientId>
</patientClinical>

这是我唯一希望保留的属性。在我的 XML 的其他地方,如果其他属性为空/空,我希望将它们删除。无论如何修改我的 XLST 步骤以跳过此属性?

提前感谢您的帮助。

最佳答案

只需在测试表达式中添加第二个条件:

<xsl:if test=". != '' or name() = 'noClinicalData'">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:if>

name()(参见 reference)函数返回当前节点名称,您可以在表达式中使用逻辑运算符(reference)。

关于xml - 如何不删除空白属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21025448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com