我必须从包含单个标记的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();
但它不起作用。 我该怎么办?
答案 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();
}
}