webForumDet fria alternativet

asp.net: hur transformera med xslt

.NET

3 svar · 204 visningar · startad av desdecado

Medlem sedan juli 2004206 inlägg
Frågan#1

Var lite osäker på i vilket forum jag skulle fråga, men då problemet jag har kan vara relaterat till asp.net-kod så får det blir här.

Jag har problem med att transformera xml med xslt. Situationen är så att jag har xml-resultatet som en .XmlDocument samt en xsl-fil men jag kan inte göra transform på den, min kod fungerar inte som jag vill.

Private Sub DisplayMDResults(ByVal xmlDoc As Xml.XmlDocument)
		m_strHtmlStylesheet = sökväg_till_xslt_(borttagen)
		Dim sSecurityUrl As String = ""

		Dim myXPathDocument As New XPathDocument(xmlDoc.OuterXml)
		'Dim myXPathDocument As XPathDocument = New XPathDocument(xmlDoc.NamespaceURI)

		Dim myXslTransform As New XslTransform
		myXslTransform.Load(m_strHtmlStylesheet)

		Dim myStringWriter As New StringWriter
		Dim myXmlTextWriter As New XmlTextWriter(myStringWriter)
		Dim myXmlResolver As XmlResolver	

		myXslTransform.Transform(myXPathDocument, Nothing, myXmlTextWriter, myXmlResolver)

		myStringWriter.WriteLine(myXmlTextWriter)
		

		litXMLoutput.Text += myStringWriter.ToString
	End Sub

Den klagar på en ogiltig URI? Vad menas med det? (Jag är nybörjare på just detta, men måste lösa uppgiften ganska så snart...) :(

Är koden korrekt för övrigt? Det enda jag vill är att skicka ut en transformerad xml till skärmen...

Medlem sedan apr. 20012 266 inlägg
#2

Vilken rad?

Medlem sedan juli 2004206 inlägg
#3

Dim myXPathDocument As New XPathDocument(xmlDoc.OuterXml)

Den kommer alltså inte längre än så! :)

Har dock testat denna kod också istället för den ovanstående, men jag vet inte riktigt om den verkligen utför något eller hur jag ska få ut resultatet:

Private Sub DisplayMDResults(ByVal xmlDoc As Xml.XmlDocument)

		m_strHtmlStylesheet = m_strPath + cst_strMultiDimXSL

		Dim myXmlResolver As XmlResolver
		Dim docHTML As String

		Dim docXsl As New Xml.Xsl.XslTransform
		docXsl.Load(m_strHtmlStylesheet)

		docHTML = docXsl.Transform(xmlDoc, Nothing, myXmlResolver).Value.ToString
		litXMLoutput.Text += docHTML
end sub
Medlem sedan apr. 20012 266 inlägg
#4

XPathDocuments constructor tar inte själva XML som en sträng utan adressen till den.

Detta verkar vara en ypperlig artikel om XSLT och .NET: http://www.topxml.com/dotnet/articles/xslt/default.asp

262 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)