Я постоянно получаю сообщение об ошибке во время преобразования XSLT: произошла ошибка при загрузке документа «https://www.example.com/myxml/example.xml». См. InnerException для полного описания ошибки. Я передаю правильно сформированный документ xml и путь к моему файлу xslt. Xslt использует функцию документа для загрузки вышеуказанного поддельного URL-адреса. Не волнуйтесь, настоящий URL-адрес доступен, я проверил. Он должен иметь возможность сделать это в соответствии с настройками xslt, позволяющими это. Кроме того, преобразование работает в Visual Studio при использовании функции преобразования XSL. Похоже, что независимо от настроек я просто не могу дать преобразованию xsl достаточно разрешений для этого.
static XElement TransformXElement(XElement xmlElement, string xsltFilePath)
{
try
{
// Load the XSLT file
XslCompiledTransform xslt = new XslCompiledTransform();
XsltSettings settings = new XsltSettings();
settings.EnableDocumentFunction = true; // Enable document() function if needed
// Create an XmlUrlResolver with credentials if required
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials; // Example: Use default credentials
// Load XSLT with resolver and settings
xslt.Load(xsltFilePath, settings, resolver);
// Create an XDocument from the XElement
XDocument xDocument = new XDocument(xmlElement);
// Prepare an XmlWriter to capture the transformed output
using (StringWriter stringWriter = new StringWriter())
using (XmlWriter xmlWriter = XmlWriter.Create(stringWriter, xslt.OutputSettings))
{
// Apply the transformation
xslt.Transform(xDocument.CreateReader(), null, xmlWriter);
// Parse the transformed XML string back into an XElement
return XElement.Parse(stringWriter.ToString());
}
}
catch (Exception ex)
{
Console.WriteLine($"Error during XSLT transformation: {ex.Message}");
return null; // Handle the error appropriately in your application
}
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... ument-http