如何使用 Java 在 XML 节点中提取值列表
How to extract list of values in an XML node using Java
下面是相关的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>
标记中以逗号分隔的值列表提取到 List 中?
简而言之,如何提取以下标签中的所有信息 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);
下面是相关的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>
标记中以逗号分隔的值列表提取到 List 中?
简而言之,如何提取以下标签中的所有信息 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);