我在XSLT中选择一些XML节点时遇到问题,并且不知道什么是错误的。
我的XML文件如下(shortend):
<?xml version="1.0" encoding="UTF-8"?>
<Invoice version="5.3.1" xmlns="http://isdoc.cz/namespace/invoice">
<DocumentType>1</DocumentType>
<ID>FV1755</ID>
<UUID>375053CE-3B81-4C48-9492-C18503F1F203</UUID>
<IssuingSystem>K2</IssuingSystem>
<IssueDate>2014-03-31</IssueDate>
<TaxPointDate>2014-03-31</TaxPointDate>
....
</Invoice>
我的XSLT文档如下。
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:pie = "http://isdoc.cz/namespace/invoice"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
exclude-result-prefixes="msxsl">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/pie:Invoice">
<Invoice>
<Id>
<xsl:value-of select ="ID"/>
</Id>
</Invoice>
</xsl:template>
</xsl:stylesheet>
我的结果如下:
<?xml version="1.0" encoding="utf-8"?>
<Invoice xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:pie="http://isdoc.cz/namespace/invoice">
<Id></Id>
</Invoice>
这就是问题所在。为什么我不能选择<ID>
值,它总是空的,无论我尝试什么。
我可以选择该值的唯一方法是将XSLT直接指向:
<xsl:value-of select ="node()[2]"/>
如何在XSLT中选择<ID>
元素?
答案 0 :(得分:1)
请记住指定ID
的命名空间:
<xsl:value-of select ="pie:ID"/>