簡體   English   中英

C#XDocument問題

[英]c# XDocument issue

我是xml解析的新手。

遵循非常基礎的教程,我嘗試解析CalDav服務器返回的以下xml:

<?xml version="1.0" encoding="utf-8" ?>
<multistatus xmlns="DAV:">
 <response>
  <href>/caldav.php/icalendar.ics</href>
  <propstat>
   <prop>
    <getetag>"xxxx-xxxx-xxxx"</getetag>
   </prop>
   <status>HTTP/1.1 200 OK</status>
  </propstat>
 </response>
 <sync-token>data:,20</sync-token>
</multistatus>

現在,我想找到我的“響應”后代,如下所示:

Doc = XDocument.Parse(response);
foreach (var node in xDoc.Root.Descendants("response")) {
  // process node
}

找不到后代。 我在這里想念什么嗎? 我的根目錄確實是一個“ multistatus”元素,它說它具有元素,但是似乎無法按名稱找到它們。

任何幫助將非常感激!

由於根節點中的以下屬性,您的response元素實際上位於名稱空間中:

xmlns="DAV:"

設置該元素及其后代的默認名稱空間。

因此,您還需要在該命名空間中搜索元素。 幸運的是,LINQ to XML使事情變得非常簡單:

XNamespace ns = "DAV:";
foreach (var node in xDoc.Root.Descendants(ns + "response"))
{
    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM