我试图使用LINQ为WebDAV服务器编写查询,但在LINQ设置默认命名空间(xmlns = "bla"
)时遇到了问题,WebDAV似乎不支持这个名称空间。
XNamespace ns = "d";
var content = new XElement(ns + "propfind"
,new XAttribute(XNamespace.Xmlns + "d", "DAV:")
,new XElement(ns + "allprops"));
预期产出如下:
<d:propfind xmlns:d="DAV:"><d:allprop /></d:propfind>
但是,无论我如何尝试序列化(即使是使用XElement.Save(someStream, SaveOptions.DisableFormatting)
),我总是得到它,这是不支持的WebDav服务器,我试图击中。
<propfind xmlns:d="DAV:" xmlns="d"><allprop /></propfind>
发布于 2015-01-06 18:59:52
问题是元素不在DAV:
名称空间中,而是在d
名称空间中。您需要区分名称空间URI和命名空间别名。你想:
XNamespace ns = "DAV:";
var content = new XElement(ns + "propfind",
new XAttribute(XNamespace.Xmlns + "d", ns),
new XElement(ns + "allprops"));
https://stackoverflow.com/questions/27805221
复制相似问题