学习XML,接下来的步骤是什么? (优雅地导航文件)

时间:2011-03-22 20:41:24

标签: c# .net xml

xml字段似乎用术语填充,(以及新的XML用户的行话),DTD,DOM和SGML,仅举几例。

我已经了解了XML文档是什么,以及文档的有效性。我需要的是接下来的步骤,或者如何实际使用XML文档。对于.Net平台,似乎有很多方法来遍历XML文档,xpath,XMLReader(来自System.Xml),数据集,甚至是低流量读取器。

最好的方法是什么?我在哪里可以找到更多“高级初学者”资料?我发现的大部分材料都是关于XML解析方法的差异(比如性能,假设有XML体验的更高级的东西),或者非程序员的一般术语解释XML(它是如何独立于平台,人类可读等)

谢谢!

同样对于细节,我正在使用C#(所以.Net)。我在vba中使用XML进行了修改,但我遇到了同样的问题。这里的实际应用是让iOS应用程序将信息转储到SQL服务器中。

3 个答案:

答案 0 :(得分:3)

下载Linqpad及其样本。它拥有相当大的Linq to XML示例库,您可能会发现它非常有用。

http://www.linqpad.net/

答案 1 :(得分:1)

如果不想解决你想解决的问题,很难做到这一点。

您需要决定是否要使用C#等过程语言或XSLT和XQuery等声明性语言来处理XML。对于许多任务而言,声明性语言将使您的生活更加轻松,但是学习曲线更多,而且很大程度上取决于您以前的经验来自哪里。一般来说,如果你的应用程序是10%的XML处理和90%的其他东西,那么在C#级别工作是合适的,而如果它是90%的XML操作和10%的其他东西,XSLT / XQuery更合适。

答案 2 :(得分:0)

了解处理XML文档的两种主要(早期)方法:SAX和DOM。然后学习如何使用一个新的“拉”解析器。

在不学习如何解析XML的情况下,您面临设计XML的危险,而这些XML很难支持手头的任务。

推荐阅读,即使您使用的是C#

Java & XML, 2nd Edition (OReilly)
Java & XML data binding (OReilly)

SAX和DOM具有足够的通用性,C#和Java之间的语言差异并不是有效使用XML的最难的部分。也许有以上的C#等价物,如果有,那就用它们。

就使用XML的“最佳”方式而言,它在很大程度上取决于手头的任务。也没有使用文本文档的“最佳”方式!如果您正在处理非常大的流,SAX可以很好地工作,直到您需要交叉引用。 DOM非常适合“内存中的整个文档”处理,但由于它的性质在文档“太大”时会受到影响。

“正确”的解决方案是定制您的XML,以利用其处理方式的优势并转化为有用的工作,同时避免伴随所选处理方法的陷阱。这很模糊,但不止一种方法可以让这只众所周知的猫皮肤。