2011-01-04 4 views
1

Я новичок в xsl и пытаюсь написать шаблон для преобразования xml в html.xml пространства имен в xsl преобразовании - игнорировать пробел?

У меня есть 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> 

Проблема заключается в том, если я я не получаю ничего назад для значение- выбора.

Если у меня Я получаю «Боб», но я теряю весь свой html.

Что мне не хватает?

ответ

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

+1 Правильный ответ. –

+0

Большое спасибо! – Ana

+0

@ Ана - очень приветствую :) – Oded

Смежные вопросы