如何使用XElement在c#中读取xml?
我有这个xml如何使用XElement在c#中读取xml?,c#,xml,xelement,C#,Xml,Xelement,我有这个xml <Folder.FolderStructure xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/FileSiteAPI.Models"> <a_attr i:nil="true" /> <checkedout>false</checkedout>
<Folder.FolderStructure
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.datacontract.org/2004/07/FileSiteAPI.Models">
<a_attr i:nil="true" />
<checkedout>false</checkedout>
<children>
<Folder.FolderStructure>
<checkedout>false</checkedout>
<children />
<created>2018-11-29T13:58:57</created>
<edited>2018-11-29T13:58:57</edited>
<extension>MSG</extension>
<id>36878331</id>
<rootfolder>false</rootfolder>
<searchfolder>false</searchfolder>
<size>29696</size>
<state i:nil="true" />
<version>1</version>
</Folder.FolderStructure>
<Folder.FolderStructure>
<checkedout>false</checkedout>
<children />
<created>2019-01-15T10:18:03</created>
<edited>2019-01-15T10:18:03</edited>
<extension>DOCX</extension>
<id>37584622</id>
<rootfolder>false</rootfolder>
<searchfolder>false</searchfolder>
<size>42345</size>
<state i:nil="true" />
<version>1</version>
</Folder.FolderStructure>
<Folder.FolderStructure>
<a_attr i:nil="true" />
<checkedout>false</checkedout>
<children i:nil="true" />
<created>0001-01-01T00:00:00</created>
<edited>0001-01-01T00:00:00</edited>
<extension i:nil="true" />
<id>2478514</id>
<rootfolder>false</rootfolder>
<searchfolder>false</searchfolder>
<size>0</size>
<state i:nil="true" />
<version>0</version>
</Folder.FolderStructure>
</children>
<created>0001-01-01T00:00:00</created>
<edited>0001-01-01T00:00:00</edited>
<extension i:nil="true" />
<id>2469288</id>
<rootfolder>false</rootfolder>
<searchfolder>false</searchfolder>
<size>72041</size>
<state i:nil="true" />
<text>Public</text>
<version>0</version>
</Folder.FolderStructure>
有人知道怎么回事吗?您需要定义并使用子体而不是元素:
您正在请求根目录下的元素,但是
文件夹。FolderStructure
是根目录。使用子体
查找嵌套实例。此外,由于自定义名称空间,元素名称实际上是{http://schemas.datacontract.org/2004/07/FileSiteAPI.Models}Folder.FolderStructure
。仅使用文件夹。FolderStructure不起作用。签出。谢谢,我只需要创建一个名称空间。
XElement folder_xml = XElement.Parse(xml_str);
List<XElement> elements = folder_xml.Elements("Folder.FolderStructure").ToList();
Console.WriteLine(elements.Count);
XElement folder_xml = XElement.Parse(xml_str);
XNamespace ns = "http://schemas.datacontract.org/2004/07/FileSiteAPI.Models";
var elements = folder_xml.Descendants(ns + "Folder.FolderStructure").ToList();
Console.WriteLine(elements.Count);