XSL |自关闭标签的转换

问题描述 投票:0回答:2

我有一个XML文件,可以在其中接收以下4种格式的数据。然后使用XSL转换为SQL LOADER创建infile。

1)  <gmt:name>OTC<gmt:name/>

2) <gmt:name><gmt:name/>

3) <gmt:name/>

4) Tag not present 

我用来转换的XSL转换代码

<NAME>
<xsl:choose>
    <xsl:when test="gmt:name">
        <xsl:value-of select="gmt:name"/>
    </xsl:when>
    <xsl:otherwise>
        <xsl:text>NULL</xsl:text>
    </xsl:otherwise>
</xsl:choose>
</NAME>

然而,此代码1,2,4格式已正确解析,但第三次我的代码无法正常工作

结果

1) <NAME>OTC</NAME>
2) <NAME/>
3) <NAME/>
4) <NAME>NULL</NAME>

因此3)将无法运行SQL LOADER,并且将失败,并出现错误,找不到初始附件字符

请提出建议

xml xslt sql-loader
2个回答
0
投票

您得到的输出是非常好的XML(<A></A><A/>都是写空元素的完全可接受的方法,任何体面的XML应用程序都将它们视为100%等效)。

我认为您可能误解了问题。您尚未完全清楚症状是什么。

我怀疑您的示例(1)和(2)是错别字,并且结束标记<A/>应该读为</A>


0
投票

当我通过XSTL解决时,将输出写为html

 <xsl:output method="html" version="4.0" encoding="UTF-8" indent="yes"/>

代码:https://xsltfiddle.liberty-development.net/ejivdHg/2

© www.soinside.com 2019 - 2024. All rights reserved.