问题标签 [jxpath]
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.
xml - XPath 选择不同命名空间中的节点
我需要一些帮助来提出正确的 XPath 表达式以从 XML 中提取值。
我可以使用 jaxb 获取值,但是我需要 xpath,因为我有一种决策表类型的映射规则,我想将其外部化,如果我使用 jaxb 会导致很多我想避免的嵌套 if/else 语句,因此需要 xpath 方法。
我有一个至少由 4 个模式构成的 xml 文件。我的意思是根模式在特定点有一个元素,它说 xs:any 并且在这个位置注入了一个基于不同模式的 xml,这反过来又具有类似的 xs:any 注入另一个 xml 以构建最终/我使用的实际 xml。
这是我正在处理的实际 XML 结构(我有意修改了这些值)。下面 xml 中的两个 Document 节点基于不同的模式
我可以毫无问题地提取前几个元素,例如 /env:Envelope/env:Body/cdtBusinessData
cdtBusinessData 是主架构中采用 xs:any 的元素 。架构片段如下
正是从这一点开始,我的 xpath 查询并没有按照我期望的方式工作。
即,当我尝试 /env:Envelope/env:Body/cdtBusinessData/Document 时,它不会将其识别为 jxpath 上的正确路径。在为选定节点提供 xpath(如 xpather/firepath/XpathBuilder)的不同工具上,我得到不同的值,xpath 都不接受这些值。
您能否帮助我了解如何从上述 xml 中的两个嵌入式节点中提取值。
我已经为此苦苦挣扎了一段时间,终于在这里寻求帮助。如果您能帮助我更正此路径,将不胜感激 //env:Envelope/env:Body/cdtBusinessData/ Document
更新
这是我根据您的建议提出的。我使用的是 jxpath 1.3。我在这里做错了什么?我在 sysouts 旁边有内嵌评论,以表明我得到了什么
java - 如何在 JXPath 表达式中使用字符串的子字符串
我有一个包含航班号和登机口号的 java 对象列表:
出于这个问题的目的,我的列表包含具有以下航班号和登机口号码的对象:
我知道如果我想在 10 号门选择所有对象,我可以使用以下 JXPath 表达式(有效):
我需要做的是在 10 号登机口选择航班号以“AA”开头的所有对象。
我尝试了以下方法,但它们都不起作用:
我的 JXPath 表达式应该是什么?甚至可以不编写自定义扩展吗?
xpath - 将 XPath 转换为 JXPath
我有以下 XML:
CreateReservation
通过以下方式从类中使用 JAXB 编组:
总结所有内容,呈现代码编组CreateReservation
类,从中创建相应的 XML,并使用 xpath 表达式检查创建的 xml 是否具有任何<CreateReservation>
节点,该节点具有任何具有op="D"
属性的子节点。使用以下 xpath 表达式完成检查:
条件工作正常,提供代码示例。现在我想摆脱不必要的CreateReservation
班级编组。为此,我想从 JAXB 切换到 JXPath:
obj
-CreateReservation
类的成员(它的结构与上面的 xml 中呈现的完全相同)
CONDITION
- 我的 JXPath 查询
这个想法是,那行:
CreateREservation
当类的op
字段等于“D”时,返回任何节点。如果不存在节点,则返回 null。功能代码的行为应该与以前完全相同。你能告诉我我CONDITION
应该是什么样子吗?
java - 遍历 Java 中的复杂对象图并获取属性的索引(类似于 xpath)
问题陈述:
想象一个像下面这样的嵌套对象:
一个公司有很多部门,每个部门都有很多员工。
Json 主体由库解组,以创建 Java 对象 Company,如上所示。
假设我有一个名为“John”的员工,我正在寻找一个 api,当我传入 Employee 对象的哈希或属性名称时,它会返回该属性的路径。
search(Object attributeName, Object attributeValue) 即 search("name", "John") 应该返回 company.departments[0].employees[5]
是否有一个很好的开源库公开类似的 api 或者什么是遍历复杂对象图的最佳方法
JSR 303 Hibernate Validator,它自动将属性路径添加到 ConstraintViolation 不会公开它如何通过任何对象从复杂对象图中获取属性路径的行为
如果有人遇到过类似的需求,请提出建议
java - 如何使用 jxpath 从 JAXB ajav 对象中获取布尔值?
我正在使用 spring 4.1.1 和 JXpath 1.3。我可以使用 JXPath 查询从 JAXB java 对象中读取所有值,但布尔值除外。
我是否需要遵循任何特定说明才能使用 JXpath 读取布尔值?
java - JXPathException '无写入方法' 错误
我有两个 java 组件。第一个是分析 MyTree 对象并使用 JXPathContext 生成要删除的任务。然后任务被发送到第二个。第二个组件是执行任务。在执行期间,我收到以下错误:
类的结构更不像这样:
你知道我为什么会收到这个错误吗?
java - 如何使用 JxPath 和 DOM 解析器解析 XML 文件
我需要一个简单的例子,如何使用 Java DOM 解析器和 Apache JxPath 解析 XML 文件。我知道 DOM 解析器技术,但现在我正在尝试将 JxPath 集成到我的源代码中。
我在网络中搜索过,但找不到工作示例。
对于测试,我有这个 xml:
Java代码:
我已经阅读了类Container、DocumentContainer 和 JXPathContext,但我将不胜感激一些帮助或具有特定工作示例的 Web 源。
xml - 解析 XML 数据的最快和最有效的方法,没有模式限制
目前我正在处理 XML 数据(以 MB 为单位),如下所示,
- 为 XML 记录创建 DOM 对象。
- 对 DOM 对象应用 XPath 查询以检索字段。
我的XML如下,
场景#1:检索一个元素的子元素列表,期望返回以下输出
子元素 - {'A','B','','D','E'} - XML 中的第三个节点包含空/null,应创建为空节点。但目前我得到的输出是 {'A','B','D','E'} 没有创建第三个值。
场景 #2:我们的应用程序中使用了一些复杂的查询,这些查询在 XPATH 中从 XML DOM 对象中检索字段是很乏味的(比如参数化的 XPATH)
有什么方法可以让我们以高效和最快的方式使用 DOM 本身来实现这一点?
或者
我们是否需要从 XML(通过 XStream)创建一个对象图并通过处理 POJO 对象的普通 java 方式来处理查询?
或者
有什么最好的方法吗?
提前致谢。
java - 如何让 JXPath 干净地设置列表/集合条目
我已经开始在我的单元和集成测试中使用 Commons JXPath,作为在 bean 层次结构中设置一组属性的简单方法。
我不能“干净地”使用 JXPath 的一种情况是设置列表条目。
我真的很想让 JXPath 做“显而易见的事情”,这样如果我尝试设置列表的条目“[1]”(奇怪的是他们选择使用基于 1 的索引),它将配置基础列表至少有一个条目。从我所见,这不会发生,我必须手动完成。
例如,这里有一些我想写的代码:
由于几个不同的原因,这不起作用。
第一个问题是“数字”列表属性将为空。我可以这样处理:
或者我可以注册一个 AbstractFactory 并改用“createPathAndSetValue()”。
但是,这仍然失败,因为即使列表可能存在,它的大小也将为零并且无法访问第 0 个条目。
我被迫做这样的事情:
如果我必须在列表中设置除第一个之外的其他条目,我将不得不使用更多虚拟条目来初始化列表。
我也会觉得有责任在任何地方添加评论以平息 WTF。
有没有更清洁的方法来做到这一点?
java - 带有转义字符“#”的 JXPath 表达式给出问题
输入 JSON :
JXPath 表达式:
我如何转义 # 以从 SB# 检索值?
失败的尝试包括
ETC..
但是,我可以从下面检索节点
但它只是对父节点的引用:-(
任何可能的解决方案/替代方案都会有所帮助.. tx