小编Nik*_*kie的帖子

通过XSLT从XML中删除空标记

我有一个以下模式的xml

<?xml version="1.0" encoding="UTF-8"?>
    <Person>
      <FirstName>Ahmed</FirstName>
      <MiddleName/>
      <LastName>Aboulnaga</LastName>
      <CompanyInfo>
        <CompanyName>IPN Web</CompanyName>
        <Title/>
    <Role></Role>
        <Department>
    </Department>
      </CompanyInfo>
    </Person>
Run Code Online (Sandbox Code Playgroud)

在我尝试删除空标签时,我使用了以下xslt(来自论坛)

 <xsl:template match="@*|node()">
<xsl:if test=". != '' or ./@* != ''">
  <xsl:copy>
  <xsl:copy-of select = "@*"/>
    <xsl:apply-templates />
  </xsl:copy>
</xsl:if>
Run Code Online (Sandbox Code Playgroud)

使用的xslt成功删除了像

<Title/>
    <Role></Role>
Run Code Online (Sandbox Code Playgroud)

...但是当空标签位于两行时失败,例如:

<Department>
    </Department>
Run Code Online (Sandbox Code Playgroud)

有没有解决这个问题?

xslt

13
推荐指数
2
解决办法
3万
查看次数

标签 统计

xslt ×1