1) Может кто-нибудь дать мне быстрое и грязное объяснение порядка операций XSLT? Я все еще немного озадачен тем, что происходит?
С точки зрения использования, есть только одна операция: вы получаете какой-то ввод, а механизм XSLT превращает его в вывод.
2) Существуют ли явные инструменты .Net для работы с XSLT? Я знаю, что при работе с файлами XSLT, XSD и XML вы получаете небольшой выпадающий список XML в главном меню Visual Studio .net. Полагаю, пока все нормально, но было бы неплохо узнать, есть ли у меня другие варианты.
С помощью XslCompiledTransform
вы можете применять свои преобразования XSL.
3) Я не собираюсь на самом деле преобразовывать файлы ... Ну, я предполагаю, что таблица расширяемых стилей будет файлом, но я хочу импортировать строку XML, преобразовать ее в другую строку XML, а затем через нее к виду в схеме проектирования MVC. Кто-нибудь раньше пробовал что-нибудь сумасшедшее? Если да, то какой совет?
Класс XslCompiledTransform
, о котором я упоминал выше, может работать непосредственно с потоками или объектами XmlReader
и XmlWriter
, поэтому вы можете делать все это в памяти без каких-либо временных файлов.
Вот базовый пример:
// Load the XSL transform from a file
var transform = new XslCompiledTransform();
transform.Load("foo.xslt");
// This is your input string
string input = /* blah */;
// Make an XML reader out of the string
XmlReader inputXmlReader;
using(var inputReader = new StringReader(input))
{
inputXmlReader = XmlReader.Create(inputReader);
}
using(writer = new StringWriter()) // prepare a string writer for the output
{
// if you need to pass arguments to the XSLT...
var args = new XsltArgumentList();
args.AddParam("key", "urn:xml-namespace-of-key", "value");
// Apply the transformation to the reader and write it in our string writer
transform.Transform(inputXmlReader, args, writer);
// Retrieve the output string from the string writer
return writer.GetStringBuilder().ToString();
}
Где я могу найти хорошие учебники о том, как это сделать (...)?
Если вы хотите выучить сам язык XSLT, вы можете проверить этот предыдущий вопрос: «Как начать работу с xslt-преобразованиями?» .