je l'XDocument suivante:Travailler avec XDocument
<?xml version="1.0" encoding="utf-8"?>
<D:multistatus xmlns:D="DAV:" xmlns:Office="urn:schemas-microsoft-com:office:office" xmlns:Repl="http://schemas.microsoft.com/repl/" xmlns:Z="urn:schemas-microsoft-com:">
<D:response>
<D:href>http://aaa</D:href>
<D:propstat>
<D:prop>
<D:displayname>a</D:displayname>
<D:isFolder>t</D:isFolder>
</D:prop>
<D:status>HTTP/1.1 200 OK</D:status>
</D:propstat>
</D:response>
<D:response>
.
.
</D:response>
Comment puis-je obtenir toutes les réponses? (Tout sous "D: réponse" tag, et évidemment tout sous "D: propstat" et "D: prop" tags - Je veux obtenir D: href, D: displayname, D: isFolder)
Je suis Pour ce faire:
XNamespace d = "DAV:";
foreach (var file in doc.Descendants(d + "response"))
{
if ((string)file.Element(d + "href") != (string)Configuration.Configs["baseUrl"])
{
string ref = (string)file.Element(d + "href");
foreach (var propstat in file.Descendants(d + "propstat"))
foreach (var prop in propstat.Descendants(d + "prop"))
{
string name = (string)prop.Element(d + "displayname");
if (prop.Element(d + "isFolder") != null && (string)prop.Element(d + "isFolder") == "t")
string type = "folder";
else
string type = "file";
}
}
}
Y a-t-il un meilleur moyen?
Le 'D:' est un préfixe qui définit l'espace de noms. Vous devez rechercher des éléments dans cet espace de noms; vous ne pouvez pas utiliser l'espace de noms par défaut. – Yuck
Est-il possible que la réponse ait plusieurs éléments 'propstat'? Ou que propstat aura plusieurs éléments 'prop' ou' status'? Aussi quels éléments pourraient manquer dans votre xml? –