Хотя я нахожу вопросы, похожие на мой, ответы на эти вопросы не отвечают на мой вопрос. Я пытаюсь преобразовать XML и XSLT в HTML, чтобы его можно было преобразовать в PDF.
У меня есть страница HTML (249 строк), которая конвертируется в XSLT:
`string filePath = hostURL + "path/to/somefile.htm";`
`xslt = client.DownloadData(filePath);`
Соответствующий XML создается с помощью XmlDocument xmlDoc = new XmlDocument();
, затем добавляются узлы XmlElement и возвращается MemoryStream xmlStream, где xslt и xmlStream передаются в
`string html = Helper.GenerateHTML(xmlStream, xslt);`
In Helper.GenerateHTML(this MemoryStream xmlStream, byte[] xsltByte)
это происходит:
`XmlReaderSettings settings = new XmlReaderSettings();
settings.XmlResolver = null;
settings.DtdProcessing = DtdProcessing.Parse;`
`using (var xsltMemoryStream = new MemoryStream(xsltByte))
using (var xmlReader = XmlReader.Create(xsltMemoryStream, settings))
using (var xmlMemoryStream = new MemoryStream())`
`using (var xmlTextWriter = new XmlTextWriter(xmlMemoryStream, null))
{
var xct = new XslCompiledTransform();
xct.Load(xmlReader);
...
}`
, но я получаю сообщение об ошибке на xct.Load(xmlReader);
, и нажатие кнопки «Создать PDF», вызвавшее этот код, не приводит к созданию и отображению PDF-файла.
Ни XSL, ни XML не имеют проблем, связанных с символами («&» против «&» и т. Д. c.). Как бы то ни было, есть еще один процесс, который извлекает XSLT из базы данных (вместо файла HTML), генерирует соответствующий XML с помощью XMLGenerator xgen = new XMLGenerator()
, затем вызывает Helper.GenerateHTML(xmlStream, xslt)
, но не блокирует строку xct.Load(xmlReader);
. кода, и отображается результирующий PDF-файл.
Почему возникает ошибка синтаксического анализа?