gpt4 book ai didi

java - 尝试获取 SimpleXML (Java) 中动态元素的子元素

转载 作者:行者123 更新时间:2023-12-01 12:04:17 24 4
gpt4 key购买 nike

我正在尝试使用简单框架 XML 访问 ProductType 元素的值。然而,问题是它的父元素可以是任何东西(即 abc1、abc2)。我见过一些可以使用 ElementUnion 完成的示例。但是,这些实现要求您预先知道节点值。我希望在不知情的情况下做到这一点。

SimpleXML 似乎并不支持所有标准 XPath 功能,因此尽管下面的 XPATH 有效,但 SimpleXML 似乎并不喜欢它。有什么建议吗?

sample 1:
<?xml version="1.0" encoding="utf-8"?>
<t1>
<t11></t11>
<abc1>
<productType>APPLE</productType>
</abc1>
</t1>

sample 2:
<?xml version="1.0" encoding="utf-8"?>
<t1>
<t11></t11>
<abc2>
<productType>ORANGE</productType>
</abc2>
</t1>

有效的 XPath,但 SimpleXML 不喜欢它:

/t1/*//productType[1]

最佳答案

您没有显示 SimpleXML 给出的错误,但您的问题通常很可能与 XPath 有关。

使用 * 来匹配任何元素是正确的。 However...

NOTE: The location path //para[1] does not mean the same as the location path /descendant::para[1]. The latter selects the first descendant para element; the former selects all descendant para elements that are the first para children of their parents.

因此,如果您想要在任何不同的 abc 父元素(在 t1 下)下找到所有 productType 元素,请使用这个 XPath 改为:

(/t1/*/productType)[1]

关于java - 尝试获取 SimpleXML (Java) 中动态元素的子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27747040/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com