1

我是 XSLT 的新手,我遇到了一个非常简单的示例的问题。

有人能告诉我为什么这与“Claim”节点不匹配吗?

我认为这应该为每个 Claim 节点打印“Claim”一词,但我已经尝试了几种变体。

XML

<?xml-stylesheet type="text/xsl" href="test.xsl" ?>
<ClaimDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.oopfactory.com/2011/XSL/Hipaa">
    <Claim Version="005010X222A1" Type="Professional" TransactionCode="000002866" PatientControlNumber="123456" TotalClaimChargeAmount="206.00" StatementFromDate="2013-08-13">
    </Claim>
</ClaimDocument>

XSLT

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="ClaimDocument">
    <xsl:for-each select="Claim">
      <xsl:text>Claim</xsl:text>
    </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>
4

2 回答 2

3

您需要与命名空间匹配,http://www.oopfactory.com/2011/XSL/Hipaa. 尝试这个:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" 
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
   xmlns:hippa="http://www.oopfactory.com/2011/XSL/Hipaa">

    <xsl:template match="/hippa:ClaimDocument">
        <xsl:for-each select="hippa:Claim">
            <xsl:text>Claim</xsl:text>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>
于 2013-08-23T14:24:05.717 回答
0

有两个错误。1. 缺少命名空间 2. 模板匹配缺少初始 /

于 2013-08-23T14:26:46.033 回答