我正在研究java项目。当我向Marklogic服务器发送请求时,它会通过ResultSequence
ResultSequence object.
当我打印此结果时
rs.asString
我明白了。
<name>hadoop</name>
<name>spark</name>
<name>hive</name>
我的目标是arrayString
为
Result[]=(hadoop,spark,hive)
如何将此XML字符串解析为ArrayString
由于
答案 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更简单。然后你只要按照他们的例子。