webForumDet fria alternativet

Skapa HTML från XML och XSL

.NET

2 svar · 184 visningar · startad av fredrik

Medlem sedan dec. 19991 072 inlägg
Frågan#1

Har gjort en liten kod-snutt som tranformerar XML med XSL. Frågan är om jag gjort på bästa sätt...

 Dim xslTransf As New XslTransform()
        Dim xmlDoc As New XmlDocument()

        xmlDoc.Load(Server.MapPath("data.xml"))
        xslTransf.Load(Server.MapPath("DataOut.xsl"))

        Dim root As XmlElement = xmlDoc.DocumentElement
        Dim nav As XPath.XPathNavigator = root.CreateNavigator()
        Dim xmlTW As New IO.StringWriter()

        xslTransf.Transform(nav, Nothing, xmlTW)
        Dim sb As System.Text.StringBuilder = xmlTW.GetStringBuilder()
        xmlTW.Close()

        Dim strResult As String = sb.ToString

Jag använder ju ingen XPathNavigator, men konstruktorn kräver det ändå...finns det nåt sätt att inte använda den?

Finns det nåt bättre sätt än att använda en StringWriter och sen hämta ut dess stringBuilder?

Har nån använt nåt liknande på en sajt i produktion? Dvs med att layouta med xsl på servern? Går det slött om många användare är inne samtidigt och då behöver accessa xsl-filen?

Tacksam för svar!

Medlem sedan apr. 20012 266 inlägg
#2

Detta vore nog väldigt lätt:

xml1.DocumentSource = "*.xml";
xml1.TransformSource = "*.xls";

På sidan:

<asp:xml id="xml1" runat="server" />

Vet inte om något mer måste göras, har inte testat koden.

Medlem sedan dec. 19991 072 inlägg
#3

Wow...känns lite för enkelt nästan...får testa och se.

Tackar!

Angående prestandan, är det slött att använda xml och xsl dokument?

256 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)