Java 将XML字符串解析为数组字符串

Java 将XML字符串解析为数组字符串,java,xml,parsing,Java,Xml,Parsing,我正在从事java项目。当我向Marklogic server发送请求时,它会通过ResultSequence ResultSequence object. 当我打印这个结果时 rs.asString 我明白了 <name>hadoop</name> <name>spark</name> <name>hive</name> 如何将此XML字符串解析为ArrayString 谢谢如果您得到的唯一标签是,那么您可以寻找替

我正在从事java项目。当我向Marklogic server发送请求时,它会通过
ResultSequence

ResultSequence object.
当我打印这个结果时

rs.asString 
我明白了

<name>hadoop</name>
<name>spark</name>
<name>hive</name>
如何将此XML字符串解析为
ArrayString


谢谢

如果您得到的唯一标签是
,那么您可以寻找替换解决方案。您可以使用
regex
删除标记:

String string = "<name>Hadoop</name>";
string.replaceAll("<name>(.*)</name>", "$1") 
String=“Hadoop”;
string.replaceAll(“(.*”,“$1”)
然后将所有字符串放入一个数组中

但是,如果有更多的标记,并且您还想处理它们,那么最好使用一些XML解析器

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

文件名=新文件(“name.xml”);
DocumentBuilderFactory dbFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder=dbFactory.newDocumentBuilder();
Document doc=dBuilder.parse(名称);
doc.getDocumentElement().normalize();
NodeList节点=doc.getElementsByTagName(“名称”);
String[]namesArray=新字符串[nodes.getLength()];
对于(int i=0;i
现在
namesArray
将具有节点值


希望这对您有所帮助

如果您得到的唯一标记是
,那么您可以寻找替换解决方案。您可以使用
regex
删除标记:

String string = "<name>Hadoop</name>";
string.replaceAll("<name>(.*)</name>", "$1") 
String=“Hadoop”;
string.replaceAll(“(.*”,“$1”)
然后将所有字符串放入一个数组中

但是,如果有更多的标记,并且您还想处理它们,那么最好使用一些XML解析器

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

文件名=新文件(“name.xml”);
DocumentBuilderFactory dbFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder=dbFactory.newDocumentBuilder();
Document doc=dBuilder.parse(名称);
doc.getDocumentElement().normalize();
NodeList节点=doc.getElementsByTagName(“名称”);
String[]namesArray=新字符串[nodes.getLength()];
对于(int i=0;i
现在
namesArray
将具有节点值

希望这有帮助

我建议使用XML(反)序列化。它比使用Java的内置XMLAPI简单得多。然后您只需遵循他们的示例。

我建议使用for XML(反)序列化。它比使用Java的内置XMLAPI简单得多。然后你就跟着他们学

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();
}