xsl转换中的xml命名空间 - 忽略空白?

时间:2011-01-04 17:10:40

标签: templates xslt

我是xsl的新手,我正在尝试编写一个模板来将xml转换为html。

我有一个以

开头的xml文档
<?xml version="1.0" encoding="UTF-8"?>
 <data xmlns:autn="http://schemas.com/aci/" 
 xmlns="http://iptc.org/std/nar/2006-10-01/">
  <name>Bob</name>

我的xsl模板开始

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"      
xmlns:autn="http://schemas.autonomy.com/aci/">
<xsl:output method="html" omit-xml-declaration="yes"/>
<xsl:template match="/"> 
...
<body>
<p>user name:</p>
<p><xsl:value-of select="data/name"/></p>

问题是,如果我这样做      对于select-value,我没有得到任何回报。

如果我这样做      我得到'鲍勃',但我丢失了所有的HTML。

我错过了什么?

1 个答案:

答案 0 :(得分:1)

您缺少XML文档的默认命名空间:

xmlns="http://iptc.org/std/nar/2006-10-01/"

也将它添加到XSLT:

<xsl:stylesheet version="1.0" 
  xmlns:mynamespace="http://iptc.org/std/nar/2006-10-01/"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"      
  xmlns:autn="http://schemas.autonomy.com/aci/">

xsl:value-of

中使用该命名空间
<xsl:value-of select="mynamespace:data/mynamespace:name" />
相关问题