Transformacja XML przez Xsl.XslCompiledTransform

0

Cześć,

Kolejne problemy z migracją z PHP na ASP.NET, tym razem mam nadzieję że łatwiejsze do przebrnięcia :) Otóż transformację z XML do HTML wykonuję w ten sposób:

System.Xml.Xsl.XslCompiledTransform transform = new System.Xml.Xsl.XslCompiledTransform();

transform.Load(
    Server.MapPath(this.Parameters.Xsl)
);

transform.Transform(this.XmlDocument.CreateNavigator(), null, writer);

Dokument XSL mam z deklarcją wyjścią:

<xsl:output method="html" indent="yes" encoding="utf-8" doctype-public="-//W3C//DTD HTML 4.01//EN" doctype-system="http://www.w3.org/TR/html4/strict.dtd" />

Czyli łopatologiczny HTML 4.01. Problem w tym, że zapis:

<div></div>

Zamienia mi na coś takiego:

<div />

co nie jest w żaden sposób zgodne z HTML 4.01. Spotkaliście się może z tym problemem? Jak go rozwiązać?

Pozdrawiam,
Grzegorz Wiśniewski

0
grzeswisniewski napisał(a)

Czyli łopatologiczny HTML 4.01. Problem w tym, że zapis:

<div></div>

Zamienia mi na coś takiego:

<div />

co nie jest w żaden sposób zgodne z HTML 4.01. Spotkaliście się może z tym problemem? Jak go rozwiązać?

HTML 4.01 osobiście nie znam, ale pracuję jakiś czas z XML i wiem, że "

" i "
" jest w XML, a więc i w XHTML jak najbardziej prawidłowe i oznacza to samo. Jest to zwyczajnie skrócona wersja węzła, który nie ma żadnych podwęzłów.</p>
0

Gdyby o tym jeszcze wiedziały przeglądarki z rodziny Internet Explorer (szczególnie 6.) nie było by problemu :)

0

string.Replace("

", "
");</p>
0

Wiem, że HTML to też string ale takie podejście raczej do najlepszych nie należy :/

0

IE też do najlepszych nie należy, jeśli nie przyjmuje prawidłowego kodu :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1