2016-04-29 205 views
1

我正在开发java项目。当我被ResultSequence将XML字符串解析为数组字符串

ResultSequence object. 

发送到Marklogic服务器时,它响应的请求,当我打印这导致

rs.asString 

我得到。

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

我的目标是有一个arrayString作为

Result[]=(hadoop,spark,hive) 

我如何解析这个XML字符串到ArrayString

感谢

回答

0

如果你所得到的唯一标签是<name>那么你可以去寻找替代解决方案。您可以使用regex删除标签:

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

然后把所有字符串数组中。

但如果有更多的标签,你也需要对他们的工作,你应该更好地使用一些XML解析器

例如:如果内容是在一个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将节点值

希望这有助于

0

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