我想在java中更改XML标记的值

时间:2014-07-22 05:09:12

标签: java xml

这是我的XML:

<Connections>
  <Connection>
    <userName>infadf</userName>
    <password>tcslkvcvo@123</password>
    <schemaName>dbo</schemaName>
    <status>OLD</status>
    <portNum>600687</portNum>
    <aliasName>first</aliasName>
  </Connection>
</Connections>

我想改变标签的价值&#34; status&#34;到&#34;新&#34;。

以下是我的java代码:

DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder dBuilder = null;

                try 
                {
                    dBuilder = dbFactory.newDocumentBuilder();
                } catch (ParserConfigurationException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            if(new File(path).exists())
            {
                Document doc = null;
                try {
                    doc = dBuilder.parse(path);
                } catch (SAXException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

            doc.getDocumentElement().normalize();
            NodeList nList = doc.getElementsByTagName("Connection");

            for (int temp = 0; temp < nList.getLength(); temp++) 
            {

                    Node nNode = nList.item(temp);
                    Element eElement = (Element) nNode; 
                    if (nNode.getNodeType() == Node.ELEMENT_NODE) 
                    {

                    }

                    if(eElement.getElementsByTagName("status").item(0).getTextContent().equalsIgnoreCase("OLD"))
                    {
                        eElement.getElementsByTagName("status").item(0).setTextContent("NEW");
                    }
            }

        }

状态标记的值不会在XML中更改。 请帮忙。

2 个答案:

答案 0 :(得分:0)

试试这个..

if("status".equalsIgnoreCase((nNode.getNodeName()))) { nNode.setTextContent("2000000"); }

答案 1 :(得分:0)

你写的那段代码正在运作。

可能是你检查天气的方式,它的工作与否是错误的。 我已经通过this来检查XML上的更新。

您对自己的所作所为仍有疑问?由于我的声望得分,我无法发布图像,否则我会显示我从eclipse得到的输出。