2013-05-27 43 views
1

我需要閱讀這樣的XML文件:讀節點與&沒有命名空間標籤

<wcs:CoverageOffering> 
<wcs:description>Generated from GeoTIFF</wcs:description> 
<wcs:name>ndh:ndh-cyclone-mortality-risks-distribution</wcs:name> 
          .... 

但在某些服務器上的XML文檔沒有命名空間標籤來實現:

<CoverageOffering> 
<description>Generated from GeoTIFF</description> 
<name>ndh:ndh-cyclone-mortality-risks-distribution</name> 
         .... 

我怎麼能在閱讀這兩個一種有效的方式? (我寫了if else else每個節點來控制這種情況,但它似乎不是一個好辦法)

回答

1

使用XmlDocument並添加wcs命名空間XmlNamespaceManager:使用的XmlNamespaceManager類使代碼更謝謝

var document = new XmlDocument(); 
document.Load(...); 
var nsmgr = new XmlNamespaceManager(document.NameTable); 
nsmgr.AddNamespace("wcs", "http://...your ns"); 

var nl = document.SelectNodes("your xpath", nsmgr); 
+0

^^ –

0

您可以使用this XML Library。如果需要,它將使用名稱空間。

你可以用它喜歡:

XElement root = XElement.Load(file); 
string description = root.Get("path/to/description", default(string)); 

string description = root.XGetElement("//description", default(string)); 

default(string)是類型轉換爲兩種獲取。你可以傳遞任何你想要的默認值。