我是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>
答案 0 :(得分: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>
答案 1 :(得分:0)
有两个错误。 1.缺少命名空间 2.模板匹配的初始/缺失