【问题标题】:Get xml value by element name通过元素名称获取xml值
【发布时间】:2017-10-20 19:50:19
【问题描述】:

如何通过以下 XML 的属性获取 XML 值:

我试过了:

String xml = "<Info><document><document>234doc</document></document></Info>";

 Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder()
        .parse(new InputSource(new StringReader(xml)));

NodeList errNodes = doc.getElementsByTagName("error");
if (errNodes.getLength() > 0) {
    Element err = (Element)errNodes.item(0);
} else { 
    Node value = doc.getElementsByTagName("document").item(0);
    out.println(value);
}

我正在寻找输出:“234doc”。但我不确定如何获得价值。谁能推荐一下?

【问题讨论】:

  • 这里的术语值得精确 - 你根本没有任何属性。您试图通过 元素名称 获取元素的值。现在,您目前看到的是什么?请注意,您只检查了第一个 document 元素,并且有两个 - 一个在另一个中。
  • @JonSkeet 编辑了我的标题..如何按元素获取值?
  • 你读过我剩下的评论了吗?首先,我会专注于获得正确的元素。那么Node.getTextContent() 可能就是你的朋友了……

标签: java xml string


【解决方案1】:

这不是一门火箭科学。您应该调试您的代码,探索您可能已经知道的类(Document、NodeList、Node、Element)并了解您的 xml 结构(更多信息请查看 here)。实现结果的一种方法是:

System.out.println(doc.getChildNodes().item(0).getTextContent());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-06
    • 2011-11-30
    • 1970-01-01
    • 2012-08-13
    • 1970-01-01
    相关资源
    最近更新 更多