我有一个将要推送的特定格式的XML文档。该文档将始终是同一类型,因此非常严格。
我需要对此进行解析,以便将其转换为JSON(嗯,这是一个混蛋版本,以便其他人可以将其与DOJO一起使用)。
我的问题是,我应该使用非常快速的轻量级(不需要SAX等)XML解析器(有什么想法吗?)还是编写我自己的,基本上可以转换为StringBuffer并在数组中旋转?基本上,我假设所有HTML解析器都将旋转通过字符串(或内存缓冲区)并进行解析,并在整个过程中产生输出。
谢谢
编辑
xml将介于3/4行到大约50个最大值之间(极端)。
不,您不应该尝试为此编写自己的XML解析器。
SAX本身非常轻巧且快速,因此我不确定为什么会认为它太多了。而且,使用字符串缓冲区实际上 要比 使用SAX 扩展性差得多,
因为SAX不需要您将整个XML文件加载到内存中就可以使用它。我已经使用SAX解析了千兆字节的XML文件,而在32位计算机上使用字符串缓冲区将无法做到这一点。
如果文件很小,而您不必担心性能,请考虑使用DOM。Java的实现可能会令人讨厌使用(您可以使用DocumentBuilderFactory中的DocumentBuilder创建文档)
从文件创建文档的代码如下所示:
Document d = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new FileInputStream("file.xml"));
(请注意,如果需要解析多个文件,保留对文档构建器的引用将加快处理速度)
然后,您可以使用org.w3c.dom.Document中的函数来读取或操作内容。例如,getElementsByTagName()返回具有特定标签名称的所有Elements。
问题内容: 有人可以帮我为什么下面的代码不起作用吗?我正在Xcode.1 Playground中对其进行测试 问题答案: 操场是沙盒,因此您将无法仅从用户文件夹中的任何位置抓取文件。以下是将该文件添加到游乐场以使其可访问的方法: 在Finder中找到您的“ .playground”文件 右键单击并选择“显示包装内容” 您应该看到“ timeline.xctimeline”,“ contents.x
问题内容: 我有一个Java服务器应用程序,可以下载CSV文件并进行解析。解析可能需要5到45分钟,并且每小时都要进行一次。此方法是应用程序的瓶颈,因此不是过早的优化。到目前为止的代码: 是否有现有的库可以帮助我加快速度?我可以改善现有代码吗? 问题答案: 您看过Apache Commons CSV吗? 使用注意事项 请记住,仅返回数据视图,这意味着原始对象不符合垃圾回收的条件,同时引用了任何视图
问题内容: 我正在创建一个复杂的JavaScript库,用于与公司的服务器端框架一起使用。 服务器端框架将其数据编码为简单的XML格式。没有花哨的命名空间或类似的东西。 理想情况下,我想将浏览器中的所有数据解析为JSON。但是,如果这样做,我需要重写一些服务器端代码以吐出JSON。这很痛苦,因为我们拥有无法轻易更改的公共API。 我真正关心的是浏览器中解析JSON和XML的性能。真的有很大的区别要
问题内容: 我正在尝试解析以下JSON 这是我从Web服务获取的JSON,并且我正在使用以下代码对其进行解析: 我收到以下错误 该操作无法完成。(NSURLErrorDomain错误-1005。)致命错误:在展开可选值时意外发现nil 我该如何解决? 问题答案: 您的网址返回了以下JSON- 最外面的方括号表示根对象是一个数组,因此尝试将JSON解析的结果强制转换为NSDictionary会导致问
在Android上执行SRV记录查找的最节省资源的方法是什么,例如在XMPP客户端(如Yaxim)中? null 编辑:提供DNSSEC验证/DANE证书查询的奖励积分。
问题内容: 嗨,我想解析看起来像这样的非常奇怪的xml: 使用本教程时,无法从foo2获取值: http://javarevisited.blogspot.com/2011/12/parse-xml-file-in-java-example- tutorial.html 但是,如果我们有相同的参数,例如 问题答案: //规范化您的XML,然后通过该XML 创建一个,然后遵循以下代码