1

私はスタイルシートに取り組んでおり、いくつかの初期XMLがあります。ただし、XMLはスタイリングの少し前に操作されているので、最終的なXMLをに送信したいと思います.Transform()。例えば、 ...

XslCompiledTransform.Transform( xpd, xslArg, output )

... xpdのXmlコンテンツを(文字列として)取得したいので、他のツールでスタイルシートを操作できます。

これを手早く汚す方法はありますか?VS2010の即時ウィンドウで、または?を呼び出す前の1〜2行のクイックC#として.Transform()

編集:.Transform()私が使用しているのは

public void Transform(IXPathNavigable input,
   XsltArgumentList arguments, TextWriter results);

...そしてxpdですXPathDocument

4

1 に答える 1

3

編集:あなたの質問の意図を誤解しました。簡単な答えは、任意の IXPathNavigable (XPathDocument を含む) の XML を取得することです。これを行うことができます。

string xml = xpd.CreateNavigator().OuterXml;

以下は私の最初の回答です。これは、変換にフィードする前に、コードで XPathDocument から XML を変更する方法を説明しています。

が XPathDocument の場合xpd、XPathDocument から XPathNavigator を取得できる可能性があります。

XPathNavigator xpn = xpd.CreateNavigator();

それを使用して XML を変更します。変更が完了したら、メソッドにxpnまたはを渡すだけです。一方、MSDN によると、XPathDocumentは読み取り専用のナビゲーターを作成するため、少し問題がある可能性があります。xpdTransform()CreateNavigator()

本当に読み取り専用の場合は、次のことができるはずです。

XmlDocument doc = new XmlDocument();
doc.LoadXml(xpd.CreateNavigator().OuterXml);

を使用docして XML を変更し、doc完了したら変換に渡します。

于 2013-01-10T20:16:33.617 に答える