我在XDocument变量中有一个完整的XML文件,我可以从这个
这样的API获得using (var reader = XmlReader.Create("website"))
{
doc = XDocument.Load(reader);
}
我需要获取XML的结构并浏览其节点,但是通过XDocument变量,我只将整个文档放在一个节点中,并且不能自己提取每个节点。那么任何解决方案还是我应该采用其他方式?
答案 0 :(得分:2)
http://www.hookedonlinq.com/LINQtoXML5MinuteOverview.ashx 是一篇关于建立它的好文章
您也可以使用linq查询
例如
var loaded = XDocument.Load("sdaf");
var q = from c in loaded.Descendants("contact")
where (int)c.Attribute("contactId") < 4
select (string)c.Element("firstName") + “ “ +
(string)c.Element("lastName");
取消了我上面链接的页面。
在我看来,XDocument和XElement对象是个蠢货。 如果你不喜欢它们,那就去学习xpath和xslt。
答案 1 :(得分:1)
要获取XDocument
的直接子节点,您可以尝试
using (var reader = XmlReader.Create("website"))
{
var doc = XDocument.Load(reader);
var childElements = doc.Elements();
}
然后进行进一步处理,例如childElements.Descendants("name").Single().Value
。
答案 2 :(得分:0)
string xml = reader.ReadToEnd();
XmlDocument thisXmlDoc = new XmlDocument();
thisXmlDoc.LoadXml(xml); // In your case DOC
reader.Close();
XPathNavigator thisNavigator = thisXmlDoc.CreateNavigator();
XPathNodeIterator dossierNodes = thisNavigator.Select("Nodename/node");
List<Dossier> thisList = GetDossiers(dossierNodes);
thisDossierList = thisList.OrderBy(c => c.something).ToList();
他正在使用XDocument对象,而不是XMLDocument对象。 - John Nicholas 52秒前
该死的,你是对的。抱歉!只是试图帮助...答案 3 :(得分:0)
XmlDocument xdoc;
xdoc = new XmlDocument();
xdoc.Load(XmlReader.Create("weblink"));
无法分析XDocument并提取其在XmlDocument中可能的XML值