sharepoint中加载文档库中的文件(该文件是xml文件)报错未授权?如何解决?
xmldocument xml=new xmldocument();
xml.load("这里边我想加载xml但是我直接输入xml的位置不可以(比如http://text/a.xml)该怎么输入");
高手帮忙看看,,急急急。
[解决办法]
我也遇到了,无论我把xml放到库里还是网站资产里,直接访问都是报服务器未授权。
我的解决办法是:将xml文件放到wwwroot里面端口对应的目录里,比如我的是80端口。
我就放80文件夹内,然后用下面语句访问:
XmlDocument xmlDoc = new XmlDocument();
SPSecurity.RunWithElevatedPrivileges(delegate()
{
string xmlPath = System.Web.HttpContext.Current.Request.PhysicalApplicationPath + "Auditor.xml";
xmlDoc.Load(xmlPath);
});
[解决办法]
//得到site对像
SPSite site = new SPSite("SiteURL");
//找到List下的xml文件
SPFile file = site.RootWeb.Lists["ListTitle"].Items[0].File;
XmlDocument doc = new XmlDocument();
//用流方式load xml文件
doc.Load(file.OpenBinaryStream());
Console.Write(doc.OuterXml.ToString());
[解决办法]
xml如果是存在IIS物理目录或者是虚拟目录里
第一,设置xml everyone 反问权限。
第二,读取Web根目录。
string fileName = HttpContext.Current.Server.MapPath("~") + "ChartsConfig.xml";
如果XML是存在数据库(文档库或者列表),此时初始XML对象就发生变化了,具体请参见MSDN。
XmlDocument doc = new XmlDocument();
//创建查询Query节点元素
XmlNode query = doc.CreateNode(XmlNodeType.Element, "Query", "");
//创建查询ViewFields节点元素
XmlNode ViewFields = doc.CreateNode(XmlNodeType.Element, "ViewFields", "");
query.InnerXml = Byquery;
ViewFields.InnerXml = byViewFields;
XmlNode items = list.GetListItems(listName, null, query, ViewFields, rowlimit, null, null);
//加载返回的XML文档结果集
doc.LoadXml(items.OuterXml);
//把xml转换成文件流
StringReader xmlreader = new StringReader(doc.OuterXml.Replace("z:", "Op").Replace("rs:data","Opdata"));
XmlReader createxmlread=XmlReader.Create(xmlreader)
这里需要转换得到xmlReader对象。
[上海]小样 无论对否只是给你提个醒,结贴后记得给分哦。