2013-08-23 115 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