2016-04-29 152 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更簡單。然後你只要按照他們的例子。