为什么没有元素数组从xml返回?

时间:2016-06-15 04:07:42

标签: c# .net xml linq

为什么以下不返回两个字符串node值?

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。

1 个答案:

答案 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