2016-09-19 6 views
0

Ich möchte ein VS-Projekt erstellen, das ich als Debugger-Tool für Xslt-Code verwenden kann. Ich habe das XML-Schema sowie die XSLT-Datei geladen. Mit der XslTransform-Klasse kann ich XslTransform.Transform aufrufen, indem ich das XML übergebe, aber ich bin nicht in der Lage, den Unterbrechungspunkt zu treffen, den ich der xslt-Datei hinzugefügt habe?XSLT Transformer VS Debugger

Antwort

0

Soweit ich weiß, müssen Sie XslCompiledTransform, nicht XslTransform verwenden. Und Sie brauchen den new XslCompiledTransform(true) Konstruktor https://msdn.microsoft.com/en-us/library/ms163418(v=vs.110).aspx, zusätzlich die folgenden Bedingungen

  • Das Stylesheet verwenden, wird auf die Load-Methode übergeben, entweder als URI oder eine Implementierung der XmlReader-Klasse, die den IXmlLineInfo-Schnittstelle implementiert. Die IXmlLineInfo-Schnittstelle ist für alle Text analysierenden XmlReader-Objekte implementiert.

  • Mit anderen Worten, wenn das Stylesheet mit einem IXPathNavigable-Objekt wie XmlDocument oder XPathDocument oder einer XmlReader-Implementierung geladen wird, die die IXmlLineInfo-Schnittstelle nicht implementiert, können Sie das Stylesheet nicht debuggen.

  • Der zum Laden des Stylesheets verwendete XmlResolver ist ein dateibasierter XmlResolver, z. B. der XmlUrlResolver (dies ist der Standard-XmlResolver, der von der XslCompiledTransform-Klasse verwendet wird).

  • Das Stylesheet befindet sich auf dem lokalen Computer oder im Intranet.

müssen wahr sein.

+0

Wenn ich die XslCompiledTransform verwendet, ist dies der zurückgegebene Fehler Token Text im Zustand Start würde zu einem ungültigen XML-Dokument führen. Stellen Sie sicher, dass die ConformanceLevel-Einstellung auf ConformanceLevel.Fragment oder ConformanceLevel.Auto festgelegt ist, wenn Sie ein XML-Fragment schreiben möchten. –

+0

Ich denke, ein bestimmtes Debugging-Problem ist besser mit Code in einer separaten Frage beschrieben. Der Fehler klingt so, als ob Sie irgendwo ein Dokumentfragment erstellen, in dem der Code ein wohlgeformtes Dokument mit einem einzelnen Wurzelelement erwartet. Ob Sie das in XSLT oder auf der C# API-Ebene beheben möchten, weiß ich nicht. Ich denke, Sie sollten die Details Ihrer Frage in einer neuen Frage angeben. –

Verwandte Themen