问题标签 [apache-commons-digester]

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 投票
2 回答
2087 浏览

java - 如何使用 commons-digester 将 XML 文件表示为 Java 对象?

继我最近关于 在 Java 中解析 XML 文件的问题之后,我决定使用 commons-digester 库。我现在熟悉这个过程,现在想创建一个表示 XML 文件的 Java 类,这样当用户实例化该类的新对象时,XML 文件中的所有数据都将可用。

为了说明这一点,我有一个名为 MyConfig.xml 的 XML 文件,其结构如下:

我还有一个名为 MyConfig.java 的 Java 类,它代表这个 XML 文件。它有一个构造函数,它接收 XML 文件的位置,然后解析并输出 XML 文件的内容。该类具有以下结构:

我的问题是,如何更改此类,以便每当其他组件实例化该类的新对象时,XML 文件的内容将在实例中可用。例如:

目前,上述实例化导致 java.lang.InstantiationException。

谢谢。

0 投票
3 回答
7358 浏览

java - 您何时以及为什么会使用 Apache commons-digester?

在使用 java 输入和输出 xml 的所有库中,在哪些情况下 commons-digester 是首选工具?

0 投票
1 回答
367 浏览

java - 有没有办法让 apache-digester 为某些属性实习字符串?

我非常喜欢使用 apache-digester 将 XML 文件加载到我的对象模型中。

我正在处理包含许多重复项(事件日志)的大文件,因此想要 String.intern() 特定属性(经常重复的属性)的字符串。

由于 Apache-Digester 在放弃控制之前读取整个文件,它最初会生成大量重复文件,从而占用大量内存;然后我可以去迭代我所有的对象和实习生,但我仍然要付出用完大量内存的代价。

另一种选择是让我的对象模型中的相应 setProperty bean 函数始终实习参数,但我在我的代码中对已经实习的字符串使用相同的函数,这样会很浪费;此外,我不想在我的模型中引入消化器特定的代码。

有没有办法让 Digester 在设置属性之前/之后实习或执行自定义代码?

0 投票
4 回答
580 浏览

java - 在 java 中,commons-Digester 如何处理输入的 XML 文件?

我是 Java 新手,我在一个 Java 项目中遇到了一个声明:

rules.xml 文件包含各种模式,每个模式都有不同的属性,如类名、方法名和其他一些属性。

我用谷歌搜索了消化器,但找不到任何有用的东西可以帮助我完成上述陈述。谁能告诉我执行上述语句的步骤是什么?事实上,这种 XML 东西的优势是什么?

0 投票
1 回答
272 浏览

java - Commons Digester 添加单例对象

我有一个 XML,我正在使用 commons-digester1.8 创建我的 bean 对象。我的 bean 包含对另一个单例 Bean 的引用。有什么方法可以创建/获取单例对象的引用并填充我的 bean。

我的 xml 包含<language/>标签,并且对于这个标签 bean 有Language.class参考。 Language.class是单例,要获得 的实例Language.class,我必须调用getInstance(String name)语言类。但是当我尝试

它给出了一个错误。有没有办法做到这一点。谢谢,加根

0 投票
4 回答
2871 浏览

java - 使用 Commons Digester 解析成 HashMap

我需要将 xml 解析为 HashMap,其中的“键”是两个元素属性的串联。xml 看起来像:

在地图的第一个条目中,我想将 'p1.c1' 作为地图键,而将 'value1' 作为地图值。如何做到这一点?

0 投票
1 回答
2965 浏览

java - SAXParseException:“已为元素“metric”指定了绑定到命名空间“null”的属性“”

在工作中,我们刚刚将一个旧的 web 应用程序从 struts 1.1 迁移到 1.2.9(希望是迁移到 1.3 的第一步),但是我们现在遇到了 commons digester 的问题。Struts 1.2.9 使用 commons-digester 1.6。

当我们尝试解析我们的 XML 文件之一时,我们得到了异常:

在调查这个问题时,我试图找到一个最简单的情况,这就是我目前所拥有的:

这是给定的XML:

DTD 目前归结为:

有谁知道我做错了什么?

如果我删除 defaultView 属性,我不会收到错误消息。


根据 sfussenegger 的建议,我现在尝试了以下(非消化器)代码:

并且无法重现该问题,但在使用我的工厂之前添加以下内容(commons-digester 在 XercesParser 中也这样做)给出了相同的异常:

最后,我们决定尝试更现代的 xerces (2.7.1) 版本,这似乎可行。

0 投票
2 回答
4904 浏览

java - 如何使用 commons Digester 解析 xml 文件并让它填充 java.util.Date 对象?

示例 XML。

示例 Java 类

示例 Digester 规则

0 投票
2 回答
595 浏览

java - 使用公共消化器如何将单个 xml 条目解析为对象中的多个字段?

如何将“Joe Smith”映射到名字“Joe”姓氏“Smith”?

我已经有了拆分名称的代码,但我不确定如何使用 Digester 进行操作。

0 投票
2 回答
1121 浏览

java - 使用 Digester 和 XSLT 转换从 xml 中获取特定值以过滤掉

我正在使用apache.commons.digester处理一个 xml 文件

例如,xml 的结构如下:

我想避免在 Digester 解析 xml 后循环。有没有我可以指定的规则,以便我只返回与文件相关的属性name="XYZ.EXE'

更新 -

因为,我问了这个问题,我用谷歌搜索了一下,http ://wiki.apache.org/commons/Digester/FAQ 上面说单独使用 Digester,不能访问具有特定值的属性。需要使用 XSLT 转换 (org.xml.sax.XMLFilter)。我不知道该怎么做。仍在寻找解决方案。欢迎任何建议。