如何从 xml 中获取 android/Java 中的属性值
How to get attribute value from xml in android/Java
我有 xml 这种格式
String xml = "<contact xmlns='com:your:ext:namespace'><phonenumber1>12345675</phonenumber1> <phonenumber2>56738903</phonenumber2></contact>";
Document doc = null;
try {
InputStream in = new ByteArrayInputStream(xml.getBytes("utf-8"));
doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(in);
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
} catch (SAXException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
} catch (ParserConfigurationException e1) {
e1.printStackTrace();
}
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder db = dbf.newDocumentBuilder();
} catch (ParserConfigurationException e1) {
e1.printStackTrace();
}
doc.getDocumentElement().normalize();
System.out.println("Root element " + doc.getDocumentElement().getNodeName());
NodeList nodeList = doc.getElementsByTagName("*");
for (int i = 0; i < nodeList.getLength(); i++) {
// Get element
Element element = (Element) nodeList.item(i);
//System.out.println(element.getNodeName());
Node nNode = nodeList.item(i);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
System.out.println("attribute tags: " + eElement.getTagName());
}
}
我正在使用上面的代码来获取属性值。
获取属性名称
但无法获取属性值
请帮助我,我是这里的结构
提前致谢
NareshRavva
在你的 xml none 元素中有属性 "Name"
所以它不能 return 你一个。
根据代码的结尾判断,您可能想使用 getTagName() 方法来获取元素名称,而不是 (phonenumber1
) 是标签名称而不是它的属性。
你的
NodeList nodeList = doc.getElementsByTagName("*");
已经包含 phonenumber1 的元素,...您可以将它们识别为 phone 标签,例如:
Element elm = (Elemetn) nNode;
if (elm.getTagName().startsWith("phone"))
phone = elm.getTextContent();
我有 xml 这种格式
String xml = "<contact xmlns='com:your:ext:namespace'><phonenumber1>12345675</phonenumber1> <phonenumber2>56738903</phonenumber2></contact>";
Document doc = null;
try {
InputStream in = new ByteArrayInputStream(xml.getBytes("utf-8"));
doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(in);
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
} catch (SAXException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
} catch (ParserConfigurationException e1) {
e1.printStackTrace();
}
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder db = dbf.newDocumentBuilder();
} catch (ParserConfigurationException e1) {
e1.printStackTrace();
}
doc.getDocumentElement().normalize();
System.out.println("Root element " + doc.getDocumentElement().getNodeName());
NodeList nodeList = doc.getElementsByTagName("*");
for (int i = 0; i < nodeList.getLength(); i++) {
// Get element
Element element = (Element) nodeList.item(i);
//System.out.println(element.getNodeName());
Node nNode = nodeList.item(i);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
System.out.println("attribute tags: " + eElement.getTagName());
}
}
我正在使用上面的代码来获取属性值。 获取属性名称 但无法获取属性值 请帮助我,我是这里的结构
提前致谢
NareshRavva
在你的 xml none 元素中有属性 "Name"
所以它不能 return 你一个。
根据代码的结尾判断,您可能想使用 getTagName() 方法来获取元素名称,而不是 (phonenumber1
) 是标签名称而不是它的属性。
你的
NodeList nodeList = doc.getElementsByTagName("*");
已经包含 phonenumber1 的元素,...您可以将它们识别为 phone 标签,例如:
Element elm = (Elemetn) nNode;
if (elm.getTagName().startsWith("phone"))
phone = elm.getTextContent();