【问题标题】:Parsing a XML String to an array String将 XML 字符串解析为数组字符串
【发布时间】:2016-04-29 08:43:46
【问题描述】:

我正在处理 java 项目。当我向 Marklogic 服务器发送请求时,它会以ResultSequence 响应

ResultSequence object.

当我打印这个结果时

rs.asString 

我明白了。

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

我的目标是拥有arrayString

 Result[]=(hadoop,spark,hive) 

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

谢谢

【问题讨论】:

    标签: java xml parsing


    【解决方案1】:

    如果您获得的唯一标签是&lt;name&gt;,那么您可以寻求查找替换解决方案。您可以使用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 将具有节点值

    希望对你有帮助

    【讨论】:

      【解决方案2】:

      我建议使用xstream 进行 XML(反)序列化。它比使用 Java 的内置 XML API 简单得多。然后你就按照他们的榜样。

      【讨论】:

        猜你喜欢
        • 2013-02-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-02
        • 2012-11-23
        • 1970-01-01
        相关资源
        最近更新 更多