将XML字符串解析为数组String

时间:2016-04-29 08:43:46

标签: java xml parsing

我正在研究java项目。当我向Marklogic服务器发送请求时,它会通过ResultSequence

进行响应
ResultSequence object.

当我打印此结果时

rs.asString 

我明白了。

<name>hadoop</name>
<name>spark</name>
<name>hive</name>

我的目标是arrayString

 Result[]=(hadoop,spark,hive) 

如何将此XML字符串解析为ArrayString

由于

2 个答案:

答案 0 :(得分:0)

如果您获得的唯一标记是<name>,那么您可以使用查找替换解决方案。您可以使用regex删除代码:

String string = "<name>Hadoop</name>";
string.replaceAll("<name>(.*)</name>", "$1") 

然后将所有字符串放在一个数组中。

但是如果有更多的标签,你也想要对它们进行处理,你最好使用一些XML Parser

  

例如:如果内容在xml文件中,那么

File names = new File("name.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(names);
doc.getDocumentElement().normalize();

NodeList nodes = doc.getElementsByTagName("name");

String[] namesArray = new String[nodes.getLength()];

for (int i = 0; i < nodes.getLength(); i++) {
  Node node = nodes.item(i);
  namesArray[i]=node.getNodeValue();
}

现在namesArray将有节点值

希望这有帮助

答案 1 :(得分:0)

我建议使用xstream进行XML(反)序列化。它比使用Java的内置XML API更简单。然后你只要按照他们的例子。