使用 java 删除 XML 根的子级

2024-05-29

这是我的 xml 文件。

- <deviceparameters>
       - <parameter componenttype="TextBox">
         <name>Operating Type</name> 
         <oid>1.3.6.1.4.1.31163.5.1.1</oid>  
         <writable>true</writable> 
         <description>The operating type defines which waveform type is used. This configuration takes several seconds to execute</description> 
       - <paramvalues type="Integer">
            <value default="No">123</value> 
         </paramvalues>
         </parameter>

       - <parameter componenttype="TextBox">
         <name>Active Waveform Status</name> 
         <oid>1.3.6.1.4.1.31163.5.1.2</oid> 
         <writable>false</writable> 
         <description>Show the status of the waveform configured by operatingType</description> 
       - <paramvalues type="String">
            <value default="yes">Active</value> 
      </paramvalues>
      </parameter>
    </deviceparameters>

我想删除名为 ' 的节点Active wavwform Status'。如何从 xml 中删除该特定节点。

我写的代码如下。

rootElement = doc.getDocumentElement();
NodeList nList = doc.getElementsByTagName("parameter");
String nodeName = TF_name.getText();


System.out.println(""+nList.getLength());

for (int temp = 0; temp < nList.getLength();temp++)                
{
    Node nNode =  nList.item(temp);    
    Element eElement = (Element) nNode;
    String upname1 = getTagValue("name", eElement);

    if(upname1.equals(nodeName))
    {
        System.out.println("Parent:   "+nNode.getParentNode().getNodeName());
        System.out.println("nodename: "+nNode.getNodeName());
        System.out.println("rmoving ....");

        rootElement.removeChild(nNode);

        System.out.println("removed..."); 
    }                   
}                   

您可以使用 DocumentTraversal、NodeIterator 删除节点。

DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse("/home/riddhish/developerworkspace/SplitString/src/com/updatexmlwithjava/file.xml");           
DocumentTraversal traversal = (DocumentTraversal) doc;
Node a = doc.getDocumentElement();
System.out.println("Current File Content");
NodeIterator iterator = traversal.createNodeIterator(a, NodeFilter.SHOW_ELEMENT, null, true);
Element b = null;
for (Node n = iterator.nextNode(); n != null; n = iterator.nextNode()) {
    Element e = (Element) n;                
    if ("parameter".equals(e.getTagName())) {
        System.out.println(""+e.getTagName() +" "+ e.getTextContent());
        b = e;
    } else if ("name".equals(e.getTagName()) && "Active Waveform Status".equals(e.getTextContent()) && b != null) {
        b.removeChild(e);
    }
}

将新内容写入文件

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/file.xml"));
            iterator = traversal.createNodeIterator(a, NodeFilter.SHOW_ELEMENT, null, true);
            b = null;
            doc = docBuilder.newDocument();
            Element rootElement = doc.createElement("deviceparameters");
            doc.appendChild(rootElement);
            for (Node n = iterator.nextNode(); n != null; n = iterator.nextNode()) {
                Element e = (Element) n;                 

                rootElement.appendChild(doc.importNode(n, true));

            }
            transformer.transform(source, result);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 java 删除 XML 根的子级 的相关文章

  • Java无法读取字体

    好的 我在使用自定义字体时遇到问题 基本上我得到了从互联网上下载的自定义字体并在我的程序中使用它 当我在 Eclipse 我使用的编辑器 中运行该程序时 一切正常 没有问题 但是 每当我将它从 eclipse 导出到 jar 时 或者尝试从
  • 为 HTTPS 连接设置 https.protocols 系统属性时出现问题

    我有一个 Java 实现 各种客户端应用程序使用它来连接到第三方系统 这些第三方系统支持 http https 上的不同协议 在这种情况下 所有客户端应用程序都托管在我的 Java 实现托管的同一服务器中 因此 在这种情况下 各种客户端应用
  • 有没有办法获取 JList 中的所有元素?

    我想知道是否有一种方法可以检索已添加到 JList 的所有元素的列表 例如 我希望 JList 从自定义单元格渲染器返回字符串或 JLabels 的数组或列表 您可以使用getModel http docs oracle com javas
  • 从 ArrayList Java 中的 HashMap 键中检索所有值

    美好的一天 这让我现在有点困惑 大脑冻结 并且似乎遗漏了一些东西 有一个 ArrayList 我用 HashMap 填充它 现在我放入 HashMap 和 arraylist Map put DATE value1 Map put VALU
  • 如何处理 FOR XML PATH/AUTO 中的空白值 - SQL Server?

    有没有人对这种 SQL Server 行为有任何见解或遇到过 当空白值转换为数据类型时 char 或具有 的列char 作为数据类型 处理使用For XML PATH 它返回 XML 结果 20 空格的特殊字符编码 当相同的空白值转换为va
  • 问题:将大数据传递给第二个 Activity

    我有一个奇怪的问题 我在网上浏览但没有找到答案 我仍然是android编程的初学者 那么让我们开始吧 我想做的就是用一些数据调用第二个活动 它适用于小数据 但如果数据变大 第二个 Activity 将不会显示 第一个 Activity 将完
  • Java(正则表达式)-获取句子中的所有单词

    我需要将 java 字符串拆分为单词数组 假设该字符串是 Hi I need to split this string into a serie s of words 目前我正在尝试使用这个String strs str split w 但
  • double 或 BigDecimal 会溢出吗?

    Java 8 给了我们Math addExact https docs oracle com javase 8 docs api java lang Math html addExact int int 适用于整数 但不适用于小数 是否有可
  • Apache HTTPClient SSLPeerUnverifiedException

    使用 Apache HttpClient 4 2 1 使用从基于表单的登录示例复制的代码 http hc apache org httpcomponents client ga examples html http hc apache or
  • 解析通过asp:FileUpload上传的XML文件

    我有一个场景 用户将上传 XML 文件 我想将该文件添加到数据库中的表中 不过 困难的部分是我需要解析文件 然后将一些信息添加到一些不同的表中 显示如何获取 XML 文件的每个示例都使用 URI 来获取文件 但是如何直接从数据库获取文件 或
  • Java Reflection:为什么这么慢?

    我一直避免使用 Java 反射 因为它速度缓慢 我在当前项目的设计中达到了一个点 能够使用它将使我的代码更具可读性和优雅性 所以我决定尝试一下 我只是对这种差异感到惊讶 我注意到有时运行时间几乎延长了 100 倍 即使在这个简单的例子中 它
  • NoSuchMethodError:org.springframework.data.repository.config.RepositoryConfigurationSource.getAttribute

    我正在尝试在 spring boot 应用程序中使用 spring data redis 来使用 redis 我正在创造JedisConnectionFactory如下 RedisStandaloneConfiguration config
  • 菜单项标题未显示

    菜单项的标题未显示在片段内 我在菜单文件中有两个项目 第一个是带有图标和标签的showAsAction always在工具栏中显示图标 第二个只有标题 我不知道这里出了什么问题 菜单项的所有操作均有效 例如下面 菜单 销售 xml menu
  • 如何更新 Websphere 7 以使用 EL2.2?

    这就是我所做的 按照此林肯 巴克斯特的帖子 http ocpsoft com java jsf2 java jsf2 how to add the magic of el el2 to jsf 我下载了 el api 2 2 jar 和 e
  • 控制台中的 Java msg - 两个方法具有相同的方法签名但不提供可分配的类?

    在迁移到 java 1 8 时 我升级了项目中的许多依赖项 它是基于spring 4 3的应用程序 有很多外部依赖 例如 JMS HTTP客户端 FTP XML等 当应用程序启动时 我现在在控制台中收到以下消息 两个方法具有相同的方法签名但
  • 在java中访问dll方法

    我正在尝试访问java中用c 编写的dll方法 从下面的代码我试图构建已成功生成的 dll using System using Microsoft Win32 namespace CyberoamWinHelper public clas
  • Java中有没有办法随机获取HashMap的值?

    Java中有没有办法随机获取HashMap的值 这有效 Random generator new Random Object values myHashMap values toArray Object randomValue values
  • Scala 不可变 Map 速度慢

    当我创建地图时 我有一段代码 val map gtfLineArr 8 split map split collect case Array k v gt k v toMap 然后我使用这张地图来创建我的对象 case class MyOb
  • Java:当计时器处于活动状态时,JSplitPane 将顶部面板的内容复制到底部面板

    所以我有一个 JSplitPane 和两个 JPanel 一个在顶部 一个在底部 在这两个面板中 我重写了paintComponent方法并添加了我自己的图形 在底部面板中 我想添加动画 当面板不重新绘制时 这很好 但是一旦计时器 java
  • simplexml,返回具有相同标签的多个项目

    我将以下 XML 文件加载到 php simplexml 中

随机推荐

  • 通过 HTTPS 的隧道

    在我的工作场所 流量拦截器 防火墙变得越来越糟糕 我无法通过端口 22 连接到我的家用计算机 并且缺乏 ssh 访问权限让我感到难过 我以前可以通过将 SSH 移动到端口 5050 来使用它 但我认为最近的一些过滤器现在将此流量视为 IM
  • 意外的迭代器函数和 Iterable.take 行为

    我正在编写一个名为 批次 的简单函数 该函数应该将一个可迭代对象拆分为大小为 size 的可迭代对象的可迭代对象 然后我遇到了生成器函数和 Iterable take 方法的奇怪行为 当期望 知道 python 生成器行为时 这段代码 It
  • 在 Swift 中的 For 循环中更改对象的属性

    我创建了一个名为 ShoppingList 的简单结构 struct ShoppingList var shoppingListId NSNumber var title String var groceryItems GroceryIte
  • 固定 Div 与静态 div 的滚动条重叠

    我无法按照我想要的方式设计布局 我有一个内容区 content 您可以在示例图像中看到的灰色 里面有一个黄色元素 这个div是position static height 100 现在我有一个 left paneldiv 也 与positi
  • 如果您不在 Java 中进行克隆,那么您会做什么以及如何称呼它?

    有没有人对 Java 中的复制构造函数 工厂方法等有任何建议或已建立的最佳实践和命名约定 特别是 假设我有一堂课Thing我想要一个返回新值的方法Thing与 a 具有相同的值Thing传入 如果是实例方法 则作为实例 您会将其作为构造函数
  • 计算帖子中使用 WordPress 短代码的次数

    我有以下 WordPress 短代码功能 function wp shortcode static i 1 return i i return return add shortcode shortcode wp shortcode 这很好用
  • 在 Android 上生成 FileDescriptor 而不先打开文件

    在Android中 是否可以直接从字节数组生成FileDescriptor 而不必先打开文件 在 Android 2 2 中 我动态生成 MIDI 文件 然后使用 MediaPlayer 进行播放 我在下面包含了成功执行此操作的 Main
  • 缩小轴 1 的形状为空 [x,0]

    我正在尝试训练 SVHN 街景门牌号码 数据集 用于张量流中的对象检测 对数字进行一些基本的 OCR 到目前为止 我已经成功地遵循了对象检测张量流指南中的宠物训练示例 当我基于样本 fast rcnn resnet101 config 训练
  • “JSONArray 文本必须在 null 的第 1 个字符处以 '[' 开头”

    只是想知道这个错误可能意味着什么 我从下面的代码中得到它 try JSONArray jArray new JSONArray result for int i 0 i
  • 从嵌套 ToolStripMenuItem 检索时,ContextMenuStrip.Owner 属性为 null

    我有一个ContextMenuStrip设置有两个ToolStripItem是 第二ToolStripItem有两个额外的嵌套ToolStripItems 我将其定义为 ContextMenuStrip cms new ContextMen
  • 获取被调用的 javascript 文件的查询字符串

    是否可以在调用的 javascript 文件上使用 javascript 获取查询参数 如下所示 in html in file js console log this location query 这是否可能以某种方式实现 或者我必须使用
  • VIEW for 表结合 UNION ALL 的 MySQL 性能

    假设我有 2 张桌子MySQL create table persons id bigint unsigned not null auto increment first name varchar 64 surname varchar 64
  • Javascript 对象属性名称

    在 C 中 可以将对象属性的名称作为字符串值获取 名称 对象 Property gt myProperty 这可以在 Javascript Typescript 中完成吗 Object Keys 是我找到的唯一东西 但它给了我所有的键 示例
  • sfinae 远离析构函数

    我正在实施一些非常类似于std vector但使用堆栈上的数组而不是内存分配 d tor 调用使用 SFINAE 的函数 If value typePOD 函数体为空 If value type是正常的班级这样std string 该函数有
  • 在运行之前可以检查 imagecreatefromjpeg 是否会导致内存耗尽致命错误吗?

    我已经对此进行了一些搜索 并且我知道不可能从内存耗尽的致命错误中恢复 我有一个运行 imagecreatefromjpeg 的脚本 我尝试捕获异常 我尝试使用 运行该函数 然后检查返回值是否为 null 或 false 我尝试使用 die
  • Google Drive REST API 是否仍需要 GET_ACCOUNTS 权限?

    Google 已弃用 Google Drive Android API 我们正在迁移到 Google Drive REST API v3 2年前 我们有使用Google Drive REST API v2 的经验 我们知道GET ACCOU
  • 在上传之前预览图像 VUEjs [重复]

    这个问题在这里已经有答案了 我知道这个问题已经被问过 但我不知道如何在vuejs中使用代码 我尝试了很多但没有任何结果 我还添加了我的代码 有人可以帮帮我吗 这是我的代码 谢谢 html
  • 在 Android 模拟器上运行完整的 Android 手机 ROM

    正如标题所说 是否可以在 Android 模拟器中运行完整的 Android 设备 ROM 是的 你可以 但让它 100 工作可能很困难 大多数 ROM 都包含其运行硬件的特定驱动程序 我并不是 100 全力以赴 但可以尝试以下步骤 创建
  • 在 Dartlang 中下载大文件

    我需要使用 dartlang 从浏览器下载较大的文件 我一直在使用 data uri 来下载 但已经达到了该方法的大小限制 想知道最好的方法是什么 我研究了使用 HTML5 文件系统 API 但它已被弃用 显然在大多数浏览器中从未真正实现过
  • 使用 java 删除 XML 根的子级

    这是我的 xml 文件