[英]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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.