有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在安卓/Java中如何从xml中获取属性值

我有这种格式的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());
        }

}

我使用上面的代码来获取附加值。 获取属性名 但无法获取属性值 请帮帮我,我在这里

提前谢谢

纳雷什拉夫瓦


共 (1) 个答案

  1. # 1 楼答案

    在xml中,没有一个元素具有属性"Name",因此它无法返回属性

    从代码的结尾判断,您可能希望使用getTagName()方法来获取元素名(phonenumber1)是标记名,而不是它的attibute

    你的

    NodeList nodeList = doc.getElementsByTagName("*");
    

    已包含phonenumber1的元素。。。您可以通过以下方式将其识别为电话标签:

    Element elm = (Elemetn) nNode;
    if (elm.getTagName().startsWith("phone"))
       phone = elm.getTextContent();