Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 学习XML,接下来的步骤是什么?(优雅地浏览文档)_C#_.net_Xml - Fatal编程技术网

C# 学习XML,接下来的步骤是什么?(优雅地浏览文档)

C# 学习XML,接下来的步骤是什么?(优雅地浏览文档),c#,.net,xml,C#,.net,Xml,xml字段似乎充满了行话(对于新的xml用户来说是行话)、DTD、DOM和SGML等等 我已经了解了什么是XML文档,以及是什么使文档有效。我需要的是接下来的步骤,或者如何实际使用XML文档。对于.Net平台,似乎有很多方法可以遍历XML文档、xpath、XMLReader(来自System.XML)、数据集,甚至是低级的streamreader 最好的方法是什么?在哪里可以找到更多的“高级初学者”资料?我找到的大部分材料都是关于XML解析方法的差异(比如性能,假设有XML经验的更高级的东西),

xml字段似乎充满了行话(对于新的xml用户来说是行话)、DTD、DOM和SGML等等

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

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

谢谢


此外,我还使用了C#(so.Net)作为详细说明。我在vba中对XML进行了修补,但我遇到了同样的问题。这里的实际应用是获取一个iOS应用程序,将信息转储到SQL server中。

下载Linqpad及其示例。它有相当大的Linq到XML示例库,您可能会发现这些示例非常有用


下载Linqpad及其示例。它有相当大的Linq到XML示例库,您可能会发现这些示例非常有用

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

如果不学习如何解析XML,您就有可能设计出无法很好地支持手头任务的XML

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

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

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

“正确”的解决方案是定制您的XML,以利用处理XML并将其转换为有用工作的方法的优势,同时避免所选处理方法带来的陷阱。这是相当模糊的,但是有不止一种方法可以剥下这只众所周知的猫的皮。

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

如果不学习如何解析XML,您就有可能设计出无法很好地支持手头任务的XML

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

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

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


“正确”的解决方案是定制您的XML,以利用处理XML并将其转换为有用工作的方法的优势,同时避免所选处理方法带来的陷阱。这是相当模糊的,但是有不止一种方法可以剥这只众所周知的猫的皮。

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


您需要决定是使用过程性语言(如C#)还是声明性语言(如XSLT和XQuery)来处理XML。对于许多任务来说,陈述式语言会让你的生活变得更加轻松,但学习曲线更为复杂,这在很大程度上取决于你以前的经验。通常,如果您的应用程序有10%的XML处理和90%的其他内容,那么在C#级工作是合适的,而如果您的应用程序有90%的XML处理和10%的其他内容,那么XSLT/XQuery则更合适。

如果您不知道要解决的问题,那么很难做到这一点


您需要决定是使用过程性语言(如C#)还是声明性语言(如XSLT和XQuery)来处理XML。对于许多任务来说,陈述式语言会让你的生活变得更加轻松,但学习曲线更为复杂,这在很大程度上取决于你以前的经验。通常,如果你的应用程序是10%的XML处理和90%的其他事情,那么在C#级工作是合适的,而如果它是90%的XML操作和10%的其他事情,XSLT/XQuery则更合适。

LINQ to XML使我的生活比我以前做的SAX或DOM解析简单得多+10.LINQ to XML使我的生活比我以前做的SAX或DOM解析简单得多+10.与XML结合使用难道没有真正的问题需要解决吗?这将是一个很好的开始。构建一个简单的RSS阅读器对于学习如何读取XML是一个很好的问题。为了让您熟悉XmlSerialization,我将学习如何序列化和反序列化到/从…我知道这并不完全是学习语法,而是从一个简单的类开始,除了读入DOM和使用XPath或其他导航方法外,您还可以开始了解应用程序如何处理Xml。它还可以让您了解所有缩略语和行话的含义?这将是一个好的开始,构建一个简单的RSS阅读器将是一个好问题
Java & XML, 2nd Edition (OReilly)
Java & XML data binding (OReilly)