2013-08-23 147 views
1

我是XSLT新手,我遇到了一个非常简单的问题。XSLT与节点不匹配

有人可以告诉我为什么这不符合“索赔”节点?

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

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> 

回答

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> 
+0

太棒了!这工作。谢谢。 –

0

有两个错误。 1.命名空间丢失 2.模板匹配缺失/缺失

+1

是的,没有。第一个是错误,但第二个不一定是错误 – jvverde

+0

同意。错误不是正确的字眼,但是我想提示的是他需要做两处修改。 – Hemang