gpt4 book ai didi

java - java中如何解析标签

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

服务器的响应如下:

<oob>
<type>screen</type>
<value>idle</value>
<action>show</action>
</oob>
<oob>
<type>schedule</type>
<action>show</action>
</oob>

我想将所有标签作为键,将标签内的值作为值。标签数量和标签类型未知。我想要这样的东西:

//for first string from server

public HashMap<String, String> response = new HashMap<String, String>();
response.put("type","screen");
response.put("value","idle");
response.put("action","show");

//for second string

response.put("type","schedule");
response.put("action","show");

应该有解析字符串的逻辑:

if(server_response.contains("<oob>")){
while(!endof server_response)
response.put("?","?");
}

如何解析该格式的服务器响应?

最佳答案

使用 XML 解析 API,DOM API 是最容易使用的 API 之一,但您需要首先将字符串转换为文档。

你可以将整个字符串转换为Node对象,使用循环,你可以一一检查每个(s)期望的元素并将其放入集合中。

以下是您可以尝试的一些代码示例:

DocumentBuilderFactory buildderfactory= DocumentBuilderFactory.newInstance();
DocumentBuilder db =buildderfactory.newDocumentBuilder();


Document docXml = db.parse(new InputSource( new StringReader( yourxml )));

NodeList list = docXml.getElementsByTagName("oob");

for (int i=0; i<list.getLength(); i++){

System.out.println(i);


Node n = list.item(i);
Node child =n.getFirstChild();
while(child!=null){

System.out.println(child.getNodeName());
System.out.println(child.getFirstChild().getNodeValue());
child= child.getNextSibling();
}

}

关于java - java中如何解析标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33382686/

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