2016-06-15 25 views
0

爲什麼以下不返回兩個字符串node的值?爲什麼不從xml返回元素數組?

string xmlContent = "<ArrayOfstring xmlns:i="http://www.23.org/2001/XMLSchema-instance" xmlns="http://schemas.microsft.com/2003/10/SerializationArrays><string>value1</string><string>value2</string></ArrayOfstring>"; 

XDocument doc = XDocument.Parse(xmlContent); 
var list = doc.Root.Elements("string") 
      .Select(element => element.Value) 
      .ToList(); 

列表數爲0

回答

2

string似乎是http://schemas.microsft.com/2003/10/SerializationArrays"命名空間中的節點,

所以,你需要附加XNamespace第一。事情是這樣的

XNamespace ns = "http://schemas.microsft.com/2003/10/SerializationArrays"; 
XDocument doc = XDocument.Parse(xmlContent); 
var list = doc.Root.Elements(ns + "string") 
      .Select(element => element.Value) 
      .ToList(); 

https://msdn.microsoft.com/en-us/library/system.xml.linq.xnamespace(v=vs.110).aspx

相關問題