我操作原始XML已经很久了。我已经使用过XmlDocument并记住了一些名为XDocument的东西开始进化,但那是几年前的事了。 M $在这些日子里的建议是什么?
提前致谢
答案 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#是否具有能够直接查询这样的节点/属性的相同构造。