У меня возникли трудности с получением метода XslCompiledTransform.Load
для перехода к серверу. Я гугле вокруг и обнаружил, что мне нужно сделать что-то вроде:Получение XslCompiledTransform.Load для загрузки файла в список SharePoint
xslt.Load(System.Web.HttpContext.Server.MapPath(xslPath),
XsltSettings.Default, new XmlUrlResolver());
Но возвратил ошибку говоря HttpContext
равна нулю.
Я также попытался:
xslt.Load(System.Web.HttpServerUtility.MapPath(xslPath),
XsltSettings.Default, new XmlUrlResolver());
Это также возвратил ошибку говоря ссылка на объект необходим для не-статического поля, метода или свойства System.Web.HttpServerUtility.MapPath(string)
xslPath имеет путь, который указывает на xsl-файл в веб-узле Sharepoint. Я просто хочу, чтобы XslCompiledTransform загрузил файл xsl с помощью пути к серверу. Является ли это возможным? Если да, то каков правильный способ или хакерский способ сделать это?
EDIT: У меня есть доступ к объекту SPWeb, который содержит путь к файлу xsl. Однако, когда я проверяю ServerRelativeUrl, он просто говорит «/MyTree/xsl.xsl». Проблема здесь в том, что я не мог заставить XslCompiledTransform.Load загрузить файл из списка SharePoint.
Спасибо.
@ Lachlan Roche: какой пакет Путь? Кроме того, путь к файлу xsl извлекается из Sharepoint, поэтому он не начинается с ~/или /. Я думаю, что это просто происходит из списка. – BeraCim
@BeraCim System.IO.Path –
@Lachlan Roche: спасибо за ответ. Я поместил в ~ xslpath. К сожалению, на этот раз метод Load сказал, что он не может найти часть пути C: \ Inetpub \ wwwroot \ wss \ VirtualDirectories \ 80 \ ~ \ {оригинальная строка каталога xslpath}. Если я вывожу ~, корневой каталог обратился к c: \ вместо этого.Как заставить метод Load указывать фактический список Sharepoint вместо локальной системы? – BeraCim