gpt4 book ai didi

java - 如何使用 Java 提取 XML 节点中的值列表

转载 作者:行者123 更新时间:2023-12-02 10:07:10 26 4
gpt4 key购买 nike

下面是相关的XML代码:

<extendedDataElements
name="Access"
type="noValue">
<children
name="item-key"
type="string">
<values>00005</values>
</children>

<children
name="access-type"
type="string">
<values>Search</values>
</children>

<children
name="key-type"
type="string">
<values>Store</values>
</children>

</extendedDataElements>

<extendedDataElements
name="Version"
type="string">
<values>Core: 3.2.0, Enum: 3.2.3, Log4j1: 3.2.0</values>
</extendedDataElements>

我有两个extendedElements对象成功加载到 NodeList 。我想做的是隔离第二个<extendedDataElements>对象(我在下面完成),并提取 <values> 中的所有字符串标签,进入 List<String> :

List<String> valuesList = new ArrayList<String>();

NodeList extendedDataElementsNodeList = commonBaseEvent.getElementsByTagName("extendedDataElements");

//successfully isolates the <extendedDateElements> tag with a list of strings in the <values>
Node secondExtendedDataElementNode = extendedDataElementsNodeList.item(1);

如何提取 <values> 中以逗号分隔的值列表标签,进入列表?

简单地说,如何提取以下 XML 标记内的所有信息:

<extendedDataElements
name="Version"
type="string">
<values>Core: 3.2.0, Enum: 3.2.3, Log4j1: 3.2.0</values>
</extendedDataElements>

最佳答案

获取属性的值

String name = secondExtendedDataElementNode.getAttributes().getNamedItem("name").getNodeValue();
String type = secondExtendedDataElementNode.getAttributes().getNamedItem("type").getNodeValue();

首先将逗号分隔的值放入数组

String[] commaSeparatedValue = secondExtendedDataElementNode.selectSingleNode("values").getText().split(",");

然后将这些值添加到列表中,

使用java8

valuesList = Arrays.stream(commaSeparatedValue).collect(Collectors.toList());

使用java9

valuesList = List.of(commaSeparatedValue);

关于java - 如何使用 Java 提取 XML 节点中的值列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55271107/

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