XML - 提取一个标记值

时间:2016-01-22 11:08:27

标签: java xml

我必须从包含单个标记的xml Document中提取标记值,如下所示:

<error>Permission denied</error>

我试过了:

String xmlRecords = "<error>Permission denied</error>"
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
InputSource is = new InputSource();
is.setCharacterStream(new StringReader(xmlRecords));
Document doc = db.parse(is);
Node nodes = doc.getFirstChild();
String = nodes.getNodeValue();

但它不起作用。 我该怎么办?

5 个答案:

答案 0 :(得分:0)

使用space获取字符串doc.getDocumentElement().getTextContent()

答案 1 :(得分:0)

如果使用上述方法,则必须构造字符串。您将使用函数获取标记名称和内容的字符串值。

Tag name = nodes.getTextContent()

tag value = nodes.getLocalName()

答案 2 :(得分:0)

使用DOM可以了解XML文档的结构,以及您正在寻找的节点级别。

获取Document之后,您可以使用document.getElementsByTagName(“root”)查找根标签或父标签,并将子节点作为列表来查找该项目。像这样:

        NodeList listresults = document.getElementsByTagName('father/root element string');         

        NodeList nl = listresults.item(0).getChildNodes();          

        // Recorremos los nodos
        for (int temp = 0; temp < nl.getLength(); temp++) {
            Node node = nl.item(temp);
            // Check if it is a node
            if (node.getNodeType() == Node.ELEMENT_NODE) {
                Element element = (Element) node;

                if(element.getNodeName().equals("error")){
                    // check the element
                }                                                                           
            }
        }

我希望这会对你有所帮助。

答案 3 :(得分:0)

只需尝试以下代码。

 String value =  nodes.getTextContent();

答案 4 :(得分:0)

我想这就是你想要的

Element element = document.getDocumentElement();    
NodeList errorTagList = element.getElementsByTagName("error");
if (errorTagList != null && errorTagList.getLength() > 0) {
   NodeList errorTagSubList = errorTagList.item(0).getChildNodes();

   if (errorTagSubList != null && errorTagSubList.getLength() > 0) {
     String value = errorTagSubList.item(0).getNodeValue();
   }

}