`
PrideSnow
  • 浏览: 242062 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

修改XML(为XML添加、删除节点)

    博客分类:
  • XML
阅读更多

/**

   * 添加图片之后,根据上传的类别,修改临时XML文件

   *

   * @param catalog

   *          ,例如:01

   * @param imgSrc

   *          ,例如:book\0000000\040\a.jpg

   * @param xmlPath

   *          ,例如:D:\TEMP.XML

   */

  public static void addNodeToTempXML(String catalog, String imgSrc, String reportName,String xmlPath) {

    Document document = load(xmlPath);

    Element root = document.getDocumentElement();

    if (root.hasChildNodes()) {

      NodeList ids = root.getChildNodes();

      for (int i = 0; i < ids.getLength(); i++) {

        Node id = ids.item(i);

        if (id.getNodeType() == Node.ELEMENT_NODE) {

          String name = id.getAttributes().getNamedItem("name").getNodeValue();

          if (name.equals(catalog)) {

            Element page_mode = document.createElement("page");

            page_mode.setAttribute("reportName", reportName);

            Text textseg = document.createTextNode(imgSrc);

            page_mode.appendChild(textseg);

            id.appendChild(page_mode);

            break;

          }

        }

      }

    }

    doc2XmlFile(document, xmlPath);

  }

 

  /**

   * 删除图片之后,根据上传的类别,修改临时XML文件

   *

   * @param manual_catalog

   * @param imgSrc

   *          ,例如:book\0000000\040\a.jpg

   * @param xmlPath

   *          ,例如D:\TEMP.XML

   */

  public static void deleteNodeFromTempXML(String manual_catalog, String imgSrc, String xmlPath) {

    Document document = load(xmlPath);

    Node root = document.getDocumentElement();

    if (root.hasChildNodes()) {

      NodeList catalogs = root.getChildNodes();

      for (int i = 0; i < catalogs.getLength(); i++) {

        Node catalog = catalogs.item(i);

        if (catalog.getNodeType() == Node.ELEMENT_NODE) {

          String name = catalog.getAttributes().getNamedItem("name").getNodeValue();

          if (name.equals(manual_catalog) && catalog.hasChildNodes()) {

            NodeList pages = catalog.getChildNodes();

            for (int j = 0; j < pages.getLength(); j++) {

              Node page = pages.item(j);

              if (page.getNodeType() == Node.ELEMENT_NODE) {

                String src = page.getFirstChild().getNodeValue();

                if (imgSrc.equals(src)) {

                  catalog.removeChild(page);

                  break;

                }

              }

            }

          }

        }

      }

    }

    doc2XmlFile(document, xmlPath);

  }

public static boolean doc2XmlFile(Document document, String filename) {

    boolean flag = true;

    try {

      TransformerFactory tf=TransformerFactory.newInstance();   

      Transformer transformer=tf.newTransformer();   

      DOMSource source=new DOMSource(document);   

      transformer.setOutputProperty(OutputKeys.ENCODING,"GB2312");   

      transformer.setOutputProperty(OutputKeys.INDENT,"yes");   

      PrintWriter pw=new PrintWriter(new FileOutputStream(filename));   

      StreamResult result=new StreamResult(pw);   

      transformer.transform(source,result); 

    } catch (Exception ex) {

      flag = false;

      ex.printStackTrace();

    }

    return flag;

  }

 

  public static Document load(String filename) {

    Document document = null;

    try {

      DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();

      DocumentBuilder builder = factory.newDocumentBuilder();

      document = builder.parse(new File(filename));

      document.normalize();

    } catch (Exception ex) {

      ex.printStackTrace();

    }

    return document;

  }

分享到:
评论

相关推荐

    v1.2 解析XML文件 读取XML文件 保存XML文件 添加节点 删除节点 修改节点 添加属性 修改/删除属性

    功能:删除当前节点的所有子节点,当前节点不删除 参数:无 返回:true删除成功 false删除失败 **************************************/ bool DeleteAllSon(); /*************************************** ...

    xml文件树形显示,可添加删除修改xml节点

    "可添加删除修改xml节点"则意味着我们需要具备对DOM树进行操作的能力。添加节点涉及创建新的DOM节点,并将其插入到适当的位置;删除节点则需要找到目标节点并从树中移除;修改节点则包括改变节点的属性或文本内容。...

    QT对XML增删查改读取,节点自定义,键值自定义

    在处理XML数据时,QT提供了一套完善的API,使得开发者能够方便地对XML文档进行创建、读取、修改和删除等操作。本教程将围绕"QT对XML的增删查改读取,节点自定义,键值自定义"这一主题,详细介绍如何利用QT库来处理...

    c# XML操作类源码 添加节点 修改节点 删除节点 导出gridview gridview导入成xml 相对完整 可以参考下

    本篇将详细讲解如何使用C#进行XML的操作,包括添加节点、修改节点、删除节点以及XML与GridView之间的交互。 首先,我们关注的是XMLOperator.cs这个文件,它是一个专门处理XML操作的类。此类通常会包含一系列的方法...

    C#中操作xml文件(插入节点、修改、删除).htm

    C#中操作xml文件(插入节点、修改、删除).htmC#中操作xml文件(插入节点、修改、删除).htmC#中操作xml文件(插入节点、修改、删除).htmC#中操作xml文件(插入节点、修改、删除).htmC#中操作xml文件(插入节点、...

    Delphi向XML中添加节点数据.rar

    Delphi7向常用的XML文件中添加内容,按照XML的节点规则依次写入内容,自定义各个节点及节点内容,具体的操作代码如下示:  var  iXml: IDOMDocument;  iRoot, iNode, iNode2, iChild, iAttribute: IDOMNode;  ...

    Qt5 XML文件的解析,增删改查节点。

    你可以使用QDomDocument的parse()方法加载XML字符串或文件,将其转换为内存中的对象模型。例如: ```cpp QFile file("example.xml"); file.open(QIODevice::ReadOnly | QIODevice::Text); QDomDocument doc; if (!...

    C#动态加载XML文件,并更改节点属性值

    在这个过程中,理解XPath(XML路径语言)也可以帮助更高效地定位XML节点。XPath是用于在XML文档中查找信息的语言,尽管在C#中不是必需的,但它提供了一种强大而灵活的方式来定位节点。 总之,C#通过`XDocument`类...

    读写xml所有节点个人小结和读取xml节点的数据总结

    #### 二、读取XML节点数据 **1. 加载XML文档** 要开始读取XML文件,首先需要加载文件到`XmlDocument`对象中: ```csharp string filename = Server.MapPath("/") + @"WebApplication1\web.config"; XmlDocument ...

    XML文件追加Node节点

    在这个例子中,我们首先加载了一个名为"example.xml"的XML文件,然后创建了一个新的元素节点,并为其添加了一个属性。接着,我们将这个新节点添加到了XML文档的根节点之下。最后,我们保存了修改后的XML文件。 对于...

    .net中XML节点内容插入、删除、修改

    本文将深入探讨如何在.NET中对XML节点进行插入、删除和修改的操作,这将帮助开发者更好地理解和掌握XML文档的动态管理。 ### 一、XML节点的插入 在.NET中,我们可以使用`System.Xml`命名空间下的类来实现XML节点的...

    C# xml多个同名节点操作

    方便对xml中任意节(多个同名节点)点属性进行获取、设置。 /// /// 设置指定节点的属性 /// /// &lt;param name="xmlContent"&gt;xml结构 /// 父节点 /// 父节点所处同名节点的位置 为0表明只有一个该节点 /// ...

    C#读取XML 的节点,以及属性

    修改XML节点和属性: - 修改节点值:对于 `XmlDocument`,可以通过 `InnerText` 属性;对于 `XDocument`,使用 `Value` 属性。 - 修改属性值:对于 `XmlDocument`,通过 `SetAttributeValue()` 方法;对于 `...

    解决XML节点删除后会留下一个空节点的问题

    在删除XML节点时,我们的目标是彻底移除它,不留下任何痕迹。 问题的关键在于,许多XML解析器和库在处理节点删除时,可能不会立即从DOM(Document Object Model)树中物理地移除它们。DOM是一种将XML文档转换为内存...

    使用DOM4J对XML文件操作-添加、修改、删除、获取元素节点

    在本教程中,我们将深入探讨如何使用DOM4J来执行基本的XML操作,包括添加元素、修改元素、删除元素以及获取元素节点。 1. **添加元素节点** 在DOM4J中,添加元素节点通常涉及创建一个新的`Element`对象,然后将其...

    XML文件增加节点 删除节点 编辑节点 以及分页效果

    4. **XmlNodeList**: 用来存储一系列XmlNode对象,通常用于遍历XML节点。 要**增加节点**,我们先创建一个新的XmlElement对象,然后通过`AppendChild`或`InsertAfter`等方法将其添加到父节点中。例如,向上面的XML...

    向Tree空间添加删除XML数据节点_Flex4

    3. **添加XML节点**: 要向XML对象添加新节点,可以直接调用XML对象的appendChild方法。例如,添加新的item节点: ```actionscript var newItem:XML = &lt;item id="3"&gt;Item 3; xmlData.appendChild(newItem); ...

    C# Winform 操作Xml(显示,添加,删除,修改)解析任何Xml

    在本文中,我们将深入探讨如何使用C# Winform来操作XML文件,包括显示、添加、删除和修改XML数据。XML(可扩展标记语言)是一种结构化数据存储格式,广泛用于软件开发中。C#提供了丰富的类库,如System.Xml命名空间...

    XML节点的操作

    在给定的代码片段中,可以看到一系列关于XML节点操作的方法,包括查询所有节点、删除子节点、添加子节点以及更新子节点。下面分别对这些方法进行详细解析。 ##### 1. 查询所有节点(`selectAllNodes()`) - **创建...

    c#读取xml文件增加结点删除节点并在listview中显示xml文件内容

    ### 删除XML节点 删除节点时,我们需要先找到要删除的节点,然后调用`RemoveChild`方法。例如: ```csharp // 找到要删除的节点 XmlNode nodeToDelete = xmlDoc.SelectSingleNode("//NodeToBeDeleted"); if ...

Global site tag (gtag.js) - Google Analytics