我操纵原始XML已经很长时间了。我已经使用了XmlDocument并记住了一些名为XDocument的开始,但是那是几年前的事。 M $在这几天推荐什么?什么Xml操作组件应该与.Net 4一起使用?
在此先感谢
我操纵原始XML已经很长时间了。我已经使用了XmlDocument并记住了一些名为XDocument的开始,但是那是几年前的事。 M $在这几天推荐什么?什么Xml操作组件应该与.Net 4一起使用?
在此先感谢
XDocument
是XML LINQ的一部分 - 这是绝对什么我使用XML的99%的工作,这些天。我们可以看到,LINQ to XML不像LINQ to SQL那样是一个真正的LINQ提供者,例如,它是一个XML API,它被设计为可以很好地与LINQ to对象。它支持一个声明性的构造模型,它的查询非常适合LINQ to Objects,使您能够非常容易地找到元素,属性等。
哦,它的命名空间的支持是赫然简单:
XNamespace ns = "http://some.url.here";
XElement element = new XElement(ns + "elementName");
基本上它是一个可爱的 - 它打败使用的XmlDocument和XmlReader中就相形见绌了,在大多数情况下。有时XmlReader
可能对流式传输效率很有用,但您可以从XmlReader
创建一个XElement
,它将只读取“当前”元素,并将XmlReader
定位在该元素之后。这允许使用LINQ to XML的好处来进行“结构化流式传输”,只要您一次只需要一个元素(当然还有任何子元素)。
关于eidylon的答案:C#不支持XML文字;它认为语言不应直接涉及XML等特定技术。你认为多大的交易是个人的事情:)
哪种语言?在VB.NET中,推荐的方法是使用XML文字和相关的道具/方法。
例如:
Dim x = XElement.Parse("<some valid xml string>")
Console.WriteLine(x.<someNode>.<someChild>.value)
将写出来的someChild节点的下someNode根目录下的值。 我不确定C#是否具有可以直接查询这样或不是这样的节点/属性的相同构造。