java– 如何动态更新另一个xml文件中的xml文件?

java– 如何动态更新另一个xml文件中的xml文件?,第1张

概述我想从另一个xml文件更新一个xml文件.我使用了一个xml文件,如下所示:one.xml<?xmlversion="1.0"encoding="utf-8"?><ScrollViewxmlns:android="http://schemas.android.com/apkes/android"android:layout_width="fill_parent"

我想从另一个xml文件更新一个xml文件.我使用了一个xml文件,如下所示:

one.xml

    <?xml version="1.0" enCoding="utf-8"?>   <ScrollVIEw xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:layout_wIDth="fill_parent"    androID:layout_height="fill_parent" androID:background="#00BFFF">      <linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:layout_wIDth="fill_parent"    androID:layout_height="fill_parent"    androID:orIEntation="vertical"><linearLayout    androID:ID="@+ID/linearLayout1"    androID:layout_wIDth="fill_parent"    androID:layout_height="wrap_content" androID:gravity="center" androID:visibility="visible"></linearLayout><linearLayout    androID:ID="@+ID/linearLayout2"    androID:layout_wIDth="fill_parent"    androID:layout_height="wrap_content" androID:gravity="center" androID:visibility="visible"></linearLayout></linearLayout></ScrollVIEw>

two.xml如下:

      <?xml version='1.0' enCoding='utf-8' standalone='yes' ?>       <map>      <int name="linearLayout1" value="8" />      <int name="linearLayout2" value="0" />      </map>

从上面两个xml文件我想改变一个属性值. xml什么时候
如果

  <int name ="linearLayout1" value = "8"/> 

从two.xml然后我想更新one.xml文件,因为linearLayout androID:ID =“@ ID / linearLayout1”然后将属性值更改为androID:visibility =“gone”.

解决方法:

这是你想要的代码

    documentBuilderFactory docFactory = documentBuilderFactory.newInstance();    documentBuilder docBuilder = docFactory.newdocumentBuilder();    document doc = docBuilder.parse("/home/rIDdhish/developerworkspace/SplitString/src/com/updatexmlwithjava/two.xml");               documentTraversal traversal = (documentTraversal) doc;    Node a = doc.getdocumentElement();    NodeIterator iterator = traversal.createNodeIterator(a, NodeFilter.SHOW_ELEMENT, null, true);

/ **
    *检查逻辑
    ** /

boolean flag=false;for (Node n = iterator.nextNode(); n != null; n = iterator.nextNode()) {       Element e = (Element) n;                            if ("int".equals(e.getTagname())) {                if(e.getAttribute("name").equals("linearLayout1")){                        if(e.getAttribute("value").equals("8"))                            flag=true;                                          }                                } }

/ **
*读取one.xml并设置androID:visibility =“gone”的逻辑
** /

docFactory = documentBuilderFactory.newInstance();docBuilder = docFactory.newdocumentBuilder();doc = docBuilder.parse("/home/rIDdhish/developerworkspace/SplitString/src/com/updatexmlwithjava/one.xml");           traversal = (documentTraversal) doc;a = doc.getdocumentElement();iterator = traversal.createNodeIterator(a, NodeFilter.SHOW_ELEMENT, null, true);            for (Node n = iterator.nextNode(); n != null; n = iterator.nextNode()) {      Element e = (Element) n;                          if ("linearLayout".equals(e.getTagname())) {                if(e.getAttribute("androID:ID").equals("@+ID/linearLayout1")){                        if(flag==true){                            System.out.println(""+e.getAttribute("androID:visibility"));                            e.setAttribute("androID:visibility", "gone");                        }                                           }                              } }

/ **
*重写one.xml的逻辑
** /

transformerFactory transformerFactory = transformerFactory.newInstance();transformer transformer = transformerFactory.newtransformer();DOMSource source = new DOMSource(doc);StreamResult result = new StreamResult(new file("/home/rIDdhish/developerworkspace/SplitString/src/com/updatexmlwithjava/one.xml"));iterator = traversal.createNodeIterator(a, NodeFilter.SHOW_ELEMENT, null, true);          doc = docBuilder.newdocument();Element rootElement = doc.createElement("ScrollVIEw");doc.appendChild(rootElement);for (Node n = iterator.nextNode(); n != null; n = iterator.nextNode()) {                       rootElement.appendChild(doc.importNode(n, true));}transformer.transform(source, result);
总结

以上是内存溢出为你收集整理的java – 如何动态更新另一个xml文件中的xml文件?全部内容,希望文章能够帮你解决java – 如何动态更新另一个xml文件中的xml文件?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1103516.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存