【问题标题】:Learning XML, what are the next steps? (navigating a document elegantly)学习 XML,下一步是什么? (优雅地浏览文档)
【发布时间】:2011-07-20 20:00:20
【问题描述】:

xml 字段似乎充满了术语,(对于新的 XML 用户来说,它的术语)、DTD、DOM 和 SGML 仅举几例。

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

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

谢谢!

另外,我正在使用 C#(所以 .Net)。我已经在 vba 中修改了 XML,但我遇到了同样的问题。这里的实际应用是让 iOS 应用将信息转储到 SQL 服务器。

【问题讨论】:

  • 您没有真正的问题需要结合 XML 来解决吗?这将是一件好事。
  • 构建一个简单的 RSS 阅读器对于学习如何阅读 XML 来说是一个很好的问题。
  • 只是为了让您熟悉 XmlSerialization,我将学习如何序列化和反序列化到/从...我知道这并不完全是学习语法,而是从简单的课程开始,除了读入 DOM 和使用 XPath 或其他导航方法之外,您还可以开始了解应用程序对 Xml 的作用。它还可以让您了解所有缩写词和行话的含义。

标签: c# .net xml


【解决方案1】:

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

http://www.linqpad.net/

【讨论】:

  • LINQ to XML 让我的生活比我过去使用的 SAX 或 DOM 解析轻松多了。 +10。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

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

    推荐阅读,即使你正在使用 C#

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-01-31
      • 1970-01-01
      • 2019-10-25
      • 2017-06-04
      • 1970-01-01
      • 2014-05-19
      • 2014-01-22
      • 2017-05-30
      • 1970-01-01
      相关资源
      最近更新 更多