问题标签 [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 - 告诉 SAX Parser 忽略无效字符?
SAX 在以下异常中不断死亡:
问题在于它大部分是正确的 UTF-8 编码,但其中有一些错误。我们无法获得该文件的新版本,我们必须使用该文件。
那么我们如何告诉 SAX 忽略无效的字符序列,或者清理 UTF-8 文件以使其没有无效的 UTF-8 序列?
xml - 找到第一个元素时如何停止解析?
我想在找到第一个元素时停止解析,即使在那之后还有更多相同的元素。我在 ruby 上使用 libxml、SAX。
此代码显示每个<usr>
元素。
但是我想在 find 1st 时停止解析<usr>
。
因为这个 XML 文件会很大。有谁知道通过 SAX 方法找到第一个元素时如何停止解析。
代码
谢谢。
java - 使用默认 sax 解析器时,jaxb unmarshal 可被精心制作的 xml 滥用?
因此,在我当前的项目中,我使用 JAXB RI 和 Sun 的 JRE(我相信是 Xerces)中的默认 Java 解析器来解组任意 XML。
首先我使用 XJC 编译一个如下形式的 XSD:
在“好案例”中,一切都按设计进行。也就是说,如果我传递了符合此模式的 XML,那么 JAXB 会正确地将其解组为对象树。
当我通过外部 DTD 引用传递 XML 时,问题就出现了,例如
在解组这样的事情时,SAX 解析器尝试加载远程实体(“ http://somehost/foobar.dtd ”),尽管这个片段显然不符合我之前用 XJC 编译的模式。
为了规避这种行为,因为我知道任何符合标准的 XML(根据我编译的 XSD)都不需要加载远程实体,所以我必须定义一个自定义 EntityResolver 来缩短所有远程实体的加载。所以不要做类似的事情:
我被迫这样做:
所以我的最终问题是:
当使用 JAXB 解组时,如果在没有加载这些远程实体的情况下可以将相关 XML 识别为无效时,底层 SAX 解析器加载远程实体是否应该自动短路?
另外,这似乎不是一个安全问题吗?鉴于 JAX-WS 在底层依赖 JAXB,似乎我可以将特制的 XML 传递给任何基于 JAX-WS 的 Web 服务,并导致 WS 主机加载任意 URL。
我是一个相对新手,所以我可能缺少一些东西。如果是这样,请告诉我!
xml - Perl XML:SAX 解析错误 -> 属性值未打印
我正在尝试使用XML::SAX parser在 Perl 中解析 XML 。我的查询是关于生成属性值。现在我只能生成标签元素中存在的值,但我的目标是生成:
这是我的books1.xsd
:
这是我的样本Books.xml
:
这是我的parser.pl
文件:
这是我的MyHandler.pm
模块:
xml - 如何使用 Perl 解析 XML 数据并将其插入 MySQL 数据库?
这是我想要完成的事情:
在更广泛的意义上,使用 SAX 解析器解析 XML 数据并将其插入 MySQL 表中的适当数据库列。
这是样本Books.xml
使用 SAX 解析器的 Perl 脚本:
SAX 解析器处理模块MySaxHandler.pm
:
脚步:
- 使用 XML::SAX 解析器解析 XML
- 对于 XML 中的每个节点,如果它有子节点,则遍历它,一旦我到达叶节点,然后动态生成插入语句,以将该节点值插入数据库表的列;例如,如果我有 XML 叶节点,
price
并且它的父节点是,那么 Perl 脚本应该在数据库表的列中offer
插入price
节点的值。price
offer
- 我有一个很大的 XML 文件,它有很多节点,每个节点又有很多子节点和大子节点。
问题:
在使用 SAX Parser 解析 XML 时,如何将 books.xml 中的元素标记值插入到适当的 MySQL 数据库列
for. E.g. price value should go into offer table's price column
中?OR
如何生成所有插入,一旦我拥有所有插入语句,然后连接到 MySQL 数据库并转储它们?
棘手的部分:
棘手的部分是有些数据具有相互依赖性。例如price
,offer
父节点中的节点也与default price
节点相关,因此在生成插入语句时,我们必须记住值已正确插入到数据库中,但我们不允许使用 MySQL 的 InnoDB 表,但我们被允许使用的唯一引擎使用的是MyISAM。
Perl 中有哪些可能的建议来解决这些问题?
xml - 在使用 SAX 解析 XML 文件时,如何创建等效于元素值的模块对象?
我现在在 sax 中有不同的模块,如 Author.pm、BillingPeriod.pm、Offer.pm、PaymentMethod.pm 等,每当我点击结束元素标签时,我想创建模块的对象,它相当于元素值。
我怎样才能做到这一点?
例如,如果我通过 XML 文件和 sax 解析器命中的结束元素进行解析,那么它应该创建 Offer.pm 的对象,类似地,如果 sax 解析器命中的结束元素标记那么它应该创建 Author.pm 的对象
代码
XML:books.xml
萨克斯:perlsaxparsing.pl
例如在下面的示例中,假设 sax 正在击中Offer end element tag
,所以正在创建对象Offer.pm
我想创建模块对象,例如,Offer.pm
在这种情况下,当 sax 命中 Offer 元素标记的结束元素时。
SAX 解析器处理程序模块:MySaxHander.pm
问题:使用 SAX 解析 XML 文件时,如何创建与元素值等效的模块对象?
java - 使用 XSD 验证 XML 文件时出错
我有一个 xml 文件,我们称之为 test.xml,我有一个用于验证的架构 (schema.xsd)。我也在使用最新版本的 TomCat。
我想知道什么可能导致以下错误:
错误:URI=file:///C:/../Upload/test.xml Line=2:文档无效:找不到语法。
错误:URI=file:///C:/../Upload/test.xml Line=2:文档根元素“TEST_ROOT”,必须匹配 DOCTYPE 根“null”。
真诚的
xml - 我应该如何在 Perl 中解析大型 XML 文件?
像下面的代码那样读取 XML 数据是否会在内存中创建 DOM 树?
对于大型 XML 文件,我应该使用SAX解析器、处理程序等吗?
xml - 使用 SAX 解析 XML 字符串
有没有办法使用 Android SAX 解析 XML 字符串?
java - SAX 模型是否有任何 XPath 处理器?
我正在寻找一个不会重建整个 DOM 文档以查找文档节点的 XPath 评估器:实际上,该对象是使用 SAX 模型管理大量 XML 数据(理想情况下超过 2Gb),这非常有利于内存管理,并提供搜索节点的可能性。
谢谢大家的支持!
对于所有说不可能的人:我最近在问了这个问题后,找到了一个名为“saxpath”的项目(http://www.saxpath.org/),但我找不到任何实施项目。