簡體   English   中英

如何使用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);

暫無
暫無

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM