Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > XSLT


Автор: Moid 2.7.2008, 13:47
Не выбираются значения полей name, address1, address2, city, country, выдает пустые строки.
В чем может быть причина?

XSLT:
Код

<xsl:stylesheet 
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      version="1.0">
    <xsl:output method="html" />
    <xsl:template match="Message[@type='s2']">
        <html>
            <head>
                <title>
                    Welcome to <xsl:value-of select="Message/company/name"/>
                </title>
                <style>
                    body,td {font-family:Tahoma,Arial; font-size:9pt;}
                </style>
            </head>
            <body>
                <h2>
                    Welcome to <xsl:value-of select="Message/company/name"/>
                </h2>
                <p/>
                <b>Our contact details:</b>
                <br/>
                <br/>
                Name - <xsl:value-of select="Message/company/name"/>
                <br/>
                Address - <xsl:value-of select="Message/company/address1"/>
                <br/>
                Address2 - <xsl:value-of select="Message/company/address2"/>
                <br/>
                City - <xsl:value-of select="Message/company/city"/>
                <br/>
                Country - <xsl:value-of select="Message/company/country"/>
            </body>
        </html>
    </xsl:template>
    <xsl:template match="Message[@type='s1']">
        <html>
            <head>
                <title>
                    Welcome to <xsl:value-of select="Message/company/name"/>
                </title>
                <style>
                    body,td {font-family:Tahoma,Arial; font-size:9pt;}
                </style>
            </head>
            <body>
                <h2>
                    Welcome to <xsl:value-of select="Message/company/name"/>
                </h2>
                <p/>
                <b>Our contact details:</b>
                <br/>
                <br/>
                <b>Name</b> - <xsl:value-of select="Message/company/name"/>
                <br/>
                <b>Address</b> - <xsl:value-of select="Message/company/address1"/>
                <br/>
                <b>
                Address2</b> - <xsl:value-of select="Message/company/address2"/>
                <br/>
                <b>City</b> - <xsl:value-of select="Message/company/city"/>
                <br/>
                <b>Country</b> - <xsl:value-of select="Message/company/country"/>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>


XML:
Код

<?xml version="1.0" encoding="utf-16"?>
<Message type="s2">
    <company>
        <name>XYZ Inc.</name>
        <address1>One Abc Way</address1>
        <address2>Some avenue</address2>
        <city>Tech city</city>
        <country>Neverland</country>
    </company>
</Message>


Код

static void Main(string[] args)
        {
            XPathDocument myXPathDoc = new XPathDocument(@"../../simple.xml") ;
            XslTransform myXslTrans = new XslTransform() ;
            myXslTrans.Load(@"../../../simple.xslt");
            XmlTextWriter myWriter = new XmlTextWriter("result.html",null) ;
            myXslTrans.Transform(myXPathDoc,null,myWriter) ;
        }

Автор: Moid 2.7.2008, 14:02
О... разобрался,
оказывается нужно было писать вместо
Код

<b>Name</b> - <xsl:value-of select="Message/company/name"/>


писать без корневого элемента
Код

<b>Name</b> - <xsl:value-of select="company/name"/>

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