Пространства имен xml в xsl transform - игнорировать пустое? - PullRequest
1 голос
/ 04 января 2011

Я новичок в 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>

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

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

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

1 Ответ

1 голос
/ 04 января 2011

Вам не хватает пространства имен по умолчанию для документа 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" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...