Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > XML, XSL > Cтранности c template match


Автор: dix75 13.10.2011, 13:06
Добрый день!

имеется xml
Код

<RDF xmlns:r="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<Search>
    <Request>
           <query>~x=55</query>
          <date>131781820</date>
    </Request>
    <Result>
        <name> Вася </name>
        <name> Вася </name>
    </Result>
</Search>
</RDF>


Обрабатываю xslt
Код

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<xsl:output method="html" omit-xml-declaration="yes"/>

<xsl:template match="RDF/Search/Result">
    <div class="news">
        <xsl:for-each select="name">
            <div class="news-row" />
        </xsl:for-each>
    </div>
</xsl:template>
</xsl:stylesheet>


Получаю
Код

<html>
    <head>
    </head>
<body>
~x=55 131781820
   <div xmlns:r="http://www.w3.org/1999/02/22-rdf-syntax-ns#" class="news">
     <div class="news-row"/>
     <div class="news-row"/>
</div>
 </body>
</html>


Меня смущает строчка 
~x=55 131781820
как она вообще туда попала и как от неё избавиться?

Автор: magelan 14.10.2011, 00:46
Возмите за правило, определять корневой шаблон, избежите многих неприятностей на этапе изучения. 
Код

<xsl:template match="/">
    <xsl:apply-templates select="RDF/Search/Result" />
</xsl:template>

<xsl:template match="Result">
...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)