我应该在.Net 4中使用什么Xml操作组件?

时间:2010-09-01 17:41:17

标签: .net-4.0

我操作原始XML已经很久了。我已经使用过XmlDocument并记住了一些名为XDocument的东西开始进化,但那是几年前的事了。 M $在这些日子里的建议是什么?

提前致谢

2 个答案:

答案 0 :(得分:3)

XDocument是LINQ to XML的一部分 - 而且肯定是这些天我用于99%XML工作的内容。

LINQ to XML听起来并不是这样 - 它实际上并不是LINQ to SQL的LINQ提供程序,例如......它是一个XML API,它设计用于LINQ to Objects 。它支持声明性构造模型,并且它的查询与LINQ to Objects非常吻合,允许您非常容易地找到元素,属性等。

哦,它的命名空间支持非常简单:

XNamespace ns = "http://some.url.here";
XElement element = new XElement(ns + "elementName");

基本上它很可爱 - 在大多数情况下,它使用XmlDocument和XmlReader打成一个竖起的帽子。有时XmlReader可能对流式传输效率有用,但您可以从XElement创建XmlReader,这只会读取“当前”元素并将XmlReader置于之后它。这允许具有LINQ to XML优势的“结构化流式传输”,只要您一次只需要一个元素(当然还有任何子元素)。

关于eidylon的回答:C#不支持XML文字;它认为语言不应直接涉及XML等特定技术。你认为这有多大的交易是个人问题:)

答案 1 :(得分:1)

哪种语言?在VB.NET中,推荐的方法是使用XML文字和相关的道具/方法。

例如:

Dim x = XElement.Parse("<some valid xml string>")
Console.WriteLine(x.<someNode>.<someChild>.value)

会在根目录下的someNode下写出someChild节点的值。 我不确定C#是否具有能够直接查询这样的节点/属性的相同构造。