为什么以下不返回两个字符串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。
答案 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