问题标签 [sax]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
1879 浏览

java - 您将如何使用 Java 来处理各种 XML 文档?

我正在寻找使用 Java 应用程序解析各种 XML 文档的最佳方法。我目前正在使用 SAX 和自定义内容处理程序执行此操作,并且效果很好 - 快速且稳定。

我决定探索具有相同程序的选项,该程序当前接收单一格式的 XML 文档,接收两种额外的 XML 文档格式,以及各种 XML 元素更改。我希望根据文档中的第一个“startElement”将 ContentHandler 换成适当的内容处理程序......但是,呃,呃,设置了 ContentHandler,然后解析了文档!

所以,我似乎无法以我最初认为的方式做到这一点。

话虽这么说,我认为这完全错误吗?用相同的 XML 处理代码解析多个离散的 XML 文档的最佳方法是什么? 我之前试图在更笼统的帖子中提问……但是,我认为我太含糊了。出于速度和效率的目的,我从未真正关注过 DOM,因为这些 XML 文档相当大,系统每隔几分钟就会收到大约 1200 个。这只是一种信息发送方式

使这个问题太长并增加我的困惑;以下是一些我想要一个 SAX、StAX 或 ?? 的各种 XML 文档的模型。解析器干净地处理。

产品.xml:

商店.xml:

管理器.xml:

0 投票
2 回答
3133 浏览

java - 如何使用 Java 1.4 和 SAX 将任意数据编码为 XML?

我们使用 SAX 来解析 XML,因为它不需要将整个 XML 文档读入内存来解析单个值。我阅读了许多坚持 SAX 只能用于解析/解码 XML 而不能创建它的文章。这是真的?

0 投票
4 回答
13005 浏览

c# - SAX 与 XmlTextReader - C# 中的 SAX

我正在尝试读取一个大型 XML 文档,并且我想以块 vsXmlDocument的方式将整个文件读入内存。我知道我可以XmlTextReader这样做,但我想知道是否有人使用过 SAX for .NET?我知道 Java 开发人员对此深信不疑,我想知道是否值得一试,如果值得一试,使用它有什么好处。我正在寻找细节。

0 投票
2 回答
9370 浏览

java - 如何从 Sax XmlHandler 输出 CDATA 部分

这是如何将字符从 Oracle 编码为 Xml 的后续问题?

在我的环境中,我使用 Java 将结果集序列化为 xml。我无法访问输出流本身,只能访问 org.xml.sax.ContentHandler。

当我尝试在 CDATA 部分中输出字符时:

它基本上是这样发生的:

我明白了:

但我想要这个:

那么如何输出带有 Sax ContentHandler 的 CDATA 部分?

0 投票
4 回答
32662 浏览

python - XML 解析 - ElementTree vs SAX 和 DOM

Python有几种解析XML的方法...

我了解使用SAX进行解析的基础知识。它用作流解析器,具有事件驱动的 API。

我也了解DOM解析器。它将 XML 读入内存并将其转换为可以使用 Python 访问的对象。

一般来说,根据您需要做什么、内存限制、性能等,在两者之间进行选择很容易。

(希望到目前为止我是正确的。)

从 Python 2.5 开始,我们也有了ElementTree。这与 DOM 和 SAX 相比如何?它和哪个更相似?为什么它比以前的解析器更好?

0 投票
5 回答
1414 浏览

java - 如何在 Java 中解析“事件 XML”?

我正在寻找使用 Java 来解析远程设备生成的事件驱动 XML 的持续流。这是两个事件的简化示例:

看起来 SAX 比 DOM 更适合这个,因为它是一个持续的流,尽管我对 Sax 不太熟悉。不要因为 XML 的结构而对我大喊大叫——我已经知道并且无法更改它。

是的,设备确实在每个事件之前发送 xml 指令。我的第一个问题是第二个 xml 处理指令正在破坏 SAX 解析器。

任何人都可以建议一种方法来解决这个问题吗?


到目前为止,我正在使用的第二个 xml 处理指令的代码是:

0 投票
6 回答
4484 浏览

java - 使用 dom4j 从流中读取单个 XML 文档

我正在尝试使用 dom4j 一次从流中读取单个 XML 文档,对其进行处理,然后继续处理流中的下一个文档。不幸的是,dom4j 的 SAXReader(在幕后使用 JAXP)一直在读取并阻塞在下面的文档元素上。

有没有办法让 SAXReader 在找到文档元素的结尾后停止读取流?有没有更好的方法来实现这一点?

0 投票
2 回答
1113 浏览

xml - 在 SAX 解析器中传递未知 XML 元素

我正在从 XML 文档加载一些数据,对其进行修改,然后写回 XML。读取是使用 SAX 解析器库完成的,而写入是使用一段自定义代码完成的。有时,文件会在外部进行修改,并添加额外的元素(例如对样式表的引用)。我不想在加载和保存文件时丢失这些额外的元素,而是希望通过任何未知标签以便它们出现

当未知元素与解释元素分开时,将未知元素和属性保存为字符串并在之后输出它们应该很简单,但是当它们散布并嵌套在解释元素中时,它就变得不那么明显了。

任何人都可以提出一个简洁的方法来做到这一点吗?切换到 DOM 解析器会更简单吗?性能不是问题。

注意。我正在使用 Gnome Glib::Markup::Parser 使用 C++,但更喜欢与语言/库无关的答案。

0 投票
3 回答
1254 浏览

java - SAX 解析器中断 ñ

我通过扩展默认处理程序在 Java 中实现了 SAX 解析器。XML 在其内容中有一个ñ。当它击中这个角色时,它会破裂。我在字符方法中打印出 char 数组,它只是以 ñ 之前的字符结束。解析器似乎在此之后停止,因为即使还有更多内容,也没有调用其他方法。即 endElement 方法不再被调用。有没有人遇到过这个问题或对如何处理有任何建议?

0 投票
4 回答
5634 浏览

java - Java SAX 解析器引发 UnknownHostException

我要解析的 XML 文件以:

所以当我启动 SAX praser 时,它会尝试在线访问这个 DTD,然后我得到一个 java.net.UnknownHostException。

  1. 在将 XML 文件提供给 SAX 解析器之前,我无法修改它
  2. 即使没有互联网连接,我也必须跑步

如何更改 SAX 解析器行为,使其不尝试加载 DTD?谢谢。