问题标签 [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.
java - 您将如何使用 Java 来处理各种 XML 文档?
我正在寻找使用 Java 应用程序解析各种 XML 文档的最佳方法。我目前正在使用 SAX 和自定义内容处理程序执行此操作,并且效果很好 - 快速且稳定。
我决定探索具有相同程序的选项,该程序当前接收单一格式的 XML 文档,接收两种额外的 XML 文档格式,以及各种 XML 元素更改。我希望根据文档中的第一个“startElement”将 ContentHandler 换成适当的内容处理程序......但是,呃,呃,设置了 ContentHandler,然后解析了文档!
所以,我似乎无法以我最初认为的方式做到这一点。
话虽这么说,我认为这完全错误吗?用相同的 XML 处理代码解析多个离散的 XML 文档的最佳方法是什么? 我之前试图在更笼统的帖子中提问……但是,我认为我太含糊了。出于速度和效率的目的,我从未真正关注过 DOM,因为这些 XML 文档相当大,系统每隔几分钟就会收到大约 1200 个。这只是一种信息发送方式
使这个问题太长并增加我的困惑;以下是一些我想要一个 SAX、StAX 或 ?? 的各种 XML 文档的模型。解析器干净地处理。
产品.xml:
商店.xml:
管理器.xml:
java - 如何使用 Java 1.4 和 SAX 将任意数据编码为 XML?
我们使用 SAX 来解析 XML,因为它不需要将整个 XML 文档读入内存来解析单个值。我阅读了许多坚持 SAX 只能用于解析/解码 XML 而不能创建它的文章。这是真的?
c# - SAX 与 XmlTextReader - C# 中的 SAX
我正在尝试读取一个大型 XML 文档,并且我想以块 vsXmlDocument
的方式将整个文件读入内存。我知道我可以XmlTextReader
这样做,但我想知道是否有人使用过 SAX for .NET?我知道 Java 开发人员对此深信不疑,我想知道是否值得一试,如果值得一试,使用它有什么好处。我正在寻找细节。
java - 如何从 Sax XmlHandler 输出 CDATA 部分
这是如何将字符从 Oracle 编码为 Xml 的后续问题?
在我的环境中,我使用 Java 将结果集序列化为 xml。我无法访问输出流本身,只能访问 org.xml.sax.ContentHandler。
当我尝试在 CDATA 部分中输出字符时:
它基本上是这样发生的:
我明白了:
但我想要这个:
那么如何输出带有 Sax ContentHandler 的 CDATA 部分?
python - XML 解析 - ElementTree vs SAX 和 DOM
Python有几种解析XML的方法...
我了解使用SAX进行解析的基础知识。它用作流解析器,具有事件驱动的 API。
我也了解DOM解析器。它将 XML 读入内存并将其转换为可以使用 Python 访问的对象。
一般来说,根据您需要做什么、内存限制、性能等,在两者之间进行选择很容易。
(希望到目前为止我是正确的。)
从 Python 2.5 开始,我们也有了ElementTree。这与 DOM 和 SAX 相比如何?它和哪个更相似?为什么它比以前的解析器更好?
java - 如何在 Java 中解析“事件 XML”?
我正在寻找使用 Java 来解析远程设备生成的事件驱动 XML 的持续流。这是两个事件的简化示例:
看起来 SAX 比 DOM 更适合这个,因为它是一个持续的流,尽管我对 Sax 不太熟悉。不要因为 XML 的结构而对我大喊大叫——我已经知道并且无法更改它。
是的,设备确实在每个事件之前发送 xml 指令。我的第一个问题是第二个 xml 处理指令正在破坏 SAX 解析器。
任何人都可以建议一种方法来解决这个问题吗?
到目前为止,我正在使用的第二个 xml 处理指令的代码是:
java - 使用 dom4j 从流中读取单个 XML 文档
我正在尝试使用 dom4j 一次从流中读取单个 XML 文档,对其进行处理,然后继续处理流中的下一个文档。不幸的是,dom4j 的 SAXReader(在幕后使用 JAXP)一直在读取并阻塞在下面的文档元素上。
有没有办法让 SAXReader 在找到文档元素的结尾后停止读取流?有没有更好的方法来实现这一点?
xml - 在 SAX 解析器中传递未知 XML 元素
我正在从 XML 文档加载一些数据,对其进行修改,然后写回 XML。读取是使用 SAX 解析器库完成的,而写入是使用一段自定义代码完成的。有时,文件会在外部进行修改,并添加额外的元素(例如对样式表的引用)。我不想在加载和保存文件时丢失这些额外的元素,而是希望通过任何未知标签以便它们出现
当未知元素与解释元素分开时,将未知元素和属性保存为字符串并在之后输出它们应该很简单,但是当它们散布并嵌套在解释元素中时,它就变得不那么明显了。
任何人都可以提出一个简洁的方法来做到这一点吗?切换到 DOM 解析器会更简单吗?性能不是问题。
注意。我正在使用 Gnome Glib::Markup::Parser 使用 C++,但更喜欢与语言/库无关的答案。
java - SAX 解析器中断 ñ
我通过扩展默认处理程序在 Java 中实现了 SAX 解析器。XML 在其内容中有一个ñ。当它击中这个角色时,它会破裂。我在字符方法中打印出 char 数组,它只是以 ñ 之前的字符结束。解析器似乎在此之后停止,因为即使还有更多内容,也没有调用其他方法。即 endElement 方法不再被调用。有没有人遇到过这个问题或对如何处理有任何建议?
java - Java SAX 解析器引发 UnknownHostException
我要解析的 XML 文件以:
所以当我启动 SAX praser 时,它会尝试在线访问这个 DTD,然后我得到一个 java.net.UnknownHostException。
- 在将 XML 文件提供给 SAX 解析器之前,我无法修改它
- 即使没有互联网连接,我也必须跑步
如何更改 SAX 解析器行为,使其不尝试加载 DTD?谢谢。