Передача аргументов в отладчик Visual Studio XSLT - PullRequest
9 голосов
/ 09 октября 2010

Я отлаживаю преобразование с помощью Visual Studio.Приложение, которое обычно использует преобразование, также передает некоторые параметры:

XslTransform xslTransform = new XslTransform();
xslTransform.Load(myXslt);
XsltArgumentList transformArgumentList = new XsltArgumentList();
transformArgumentList.AddParam(paramName1, String.Empty, paramValue1); // this
transformArgumentList.AddParam(paramName2, String.Empty, paramValue2); // and this
xslTransform.Transform(inputStream, transformArgumentList, outputStream);

Как настроить параметры при отладке?

1 Ответ

7 голосов
/ 10 октября 2010

Как я могу установить параметры, когда отладки?

Вы должны использовать следующий XslCompiledTransform конструктор :

public XslCompiledTransform(
    bool enableDebug
)

с аргументом enableDebug, установленным в true.

Затем вы можете начать отладку, и отладчик остановится на точках останова, установленных в вашем преобразовании XSLT .

Вот пример:

// Enable XSLT debugging.
XslCompiledTransform xslt = new XslCompiledTransform(true);

// Load the style sheet.
xslt.Load("MyTransformation.xsl");

// Create the writer.
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent=true;
XmlWriter writer = XmlWriter.Create("output.xml", settings);

// Execute the transformation.
xslt.Transform("books.xml", writer);
writer.Close();

Конечно, если вы ленивы, вы можете просто жестко закодировать значения параметров в вашей таблице стилей XSLT:

<xsl:param name="param1" select="SomeValue1"/>
<xsl:param name="param2" select="SomeValue2"/>
...