首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >更新微小Xml元素中的数据

更新微小Xml元素中的数据
EN

Stack Overflow用户
提问于 2015-04-08 03:52:03
回答 1查看 4K关注 0票数 0

我的问题是:是否可以更改xml元素中的数据?

我要做的是根据按下的按钮更改元素中的数据。目前,我让它读写xml文件,但我想将它更改为,第一次编写一个新元素,然后再编辑元素,因为它现在每次只编写一个新元素。

这是我当前编写新元素的代码。

代码语言:javascript
运行
AI代码解释
复制
if (doc.LoadFile(XMLDOC) == tinyxml2::XML_SUCCESS){
    //Get Root Node
    tinyxml2::XMLElement* rootNode = doc.FirstChildElement();//Assets
    //Get Next Node
    tinyxml2::XMLElement* childNode = rootNode->FirstChildElement();//imagePaths
    //Temp Element 
    tinyxml2::XMLElement* temp = nullptr;
    tinyxml2::XMLElement* temp2 = childNode->FirstChildElement();//path

    while (temp2 != nullptr){
        temp = temp2;
        temp2 = temp2->NextSiblingElement("path");
    }
    if (temp != nullptr){
        //write the text
        tinyxml2::XMLComment* newComment = doc.NewComment("Selected Player");
        tinyxml2::XMLElement* newElement = doc.NewElement("path");

            //get text passed in 
            newElement->SetText(choice.c_str());

            newElement->SetAttribute("name", "selected_player");
            childNode->InsertAfterChild(temp, newComment);
            childNode->InsertAfterChild(newComment, newElement);

    }
    //doc.Print();
    doc.SaveFile(XMLDOC);
    }
    else{
        std::cout << "Could Not Load XML Document : %s" << XMLDOC << std::endl;
    }
}

谢谢你的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-08 05:19:03

我不能百分之百确定你想要什么样的行为。下面是一个基于问题代码示例的代码示例:

代码语言:javascript
运行
AI代码解释
复制
#include "tinyxml2.h"
#include <iostream>
#include <string>

#define XMLDOC "test.xml"

std::string choice = "New Text";

int main()
{
   tinyxml2::XMLDocument doc;
   if (doc.LoadFile(XMLDOC) == tinyxml2::XML_SUCCESS){
      //Get Root Node
      tinyxml2::XMLElement* rootNode = doc.FirstChildElement();//Assets
      //Get Next Node
      tinyxml2::XMLElement* childNode = rootNode->FirstChildElement();//imagePaths
      //Path Node
      tinyxml2::XMLElement* pathNode = childNode->FirstChildElement();//path

      if (pathNode == nullptr){
         //write the text
         tinyxml2::XMLComment* newComment = doc.NewComment("Selected Player");
         tinyxml2::XMLElement* newElement = doc.NewElement("path");

         newElement->SetAttribute("name", "selected_player");
         newElement->SetText(choice.c_str());

         childNode->InsertFirstChild(newComment);
         childNode->InsertAfterChild(newComment, newElement);
      }
      else{
         pathNode->SetText(choice.c_str());
      }
      doc.SaveFile(XMLDOC);
   }
   else{
      std::cout << "Could Not Load XML Document : " << XMLDOC << std::endl;
   }
}

给定如下所示的XML文件:

代码语言:javascript
运行
AI代码解释
复制
<Assets>
<ImagePaths>
</ImagePaths>
</Assets>

运行之后,它将如下所示:

代码语言:javascript
运行
AI代码解释
复制
<Assets>
<ImagePaths>
    <!--Selected Player-->
    <path name="selected_player">New Text</path>
</ImagePaths>
</Assets>

如果您再次运行该程序,您只会得到包含所选字符串的文本的单路径节点。

希望这能帮上忙!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29513830

复制
相关文章
纯手工搭建JSF开发环境(JSF2.2+maven+weblogic 12c/jboss EAP 6.1+)
JSF 2.X因为种种原因(我个人觉得主要是因为推出太晚),再加上EJB2之前的设计过于复杂,引起很多开发人员对官方解决方案的反感,即使EJB3后来做了大量改进,国内也很少有人对EJB3感兴趣,目前国内主流开发架构大多采用SSH,很少有JSF 2.x + EJB 3.x的应用,但从我个人感觉来看,特别是对于从.NET转型到JAVA的web程序员而言,JSF中的很多概念其实跟.NET很接近,国外已经有越来越多的项目在采用JSF + EJB3做为技术选型,下面将详细介绍JSF的开发环境搭建.
菩提树下的杨过
2018/09/20
1.5K0
纯手工搭建JSF开发环境(JSF2.2+maven+weblogic 12c/jboss EAP 6.1+)
18.2.3ri
1,修复关闭内存缓存下,网易的顶部图标无法显示的bug。原因是此图标是 background-image: url(products_sprites0727.svg),none;这种形式, 而svg在RawResource::preCacheSubstituteDataForMainResource里被缓存准备加载的。现在对所有主资源类型的请求都放行
龙泉寺扫地僧
2019/02/20
4590
JSF标签大全详解
藉由以下的几个主题,可以大致了解JSF的轮廓与特性,我们来看看网页设计人员与应用程序设计人员各负责什么。
一朵灼灼华
2022/08/05
1.5K0
Java 近期新闻:JDK 19 进入 Rampdown 阶段,JDK 20 专家组,Eclipse Mojarra 4.0
作者 | Michael Redlich 译者 | 刘雅梦 策划 | 丁晓昀 Java 近期新闻包括:JDK 19 进入 Rampdown 第一阶段;JDK 20 专家组成立;Spring Shell 2.1.0-M5、Open Liberty 22.0.0.6 和 22.0.0.7-beta、Quarkus 2.10.0.CR1、Apache Groovy 4.0.3、 Eclipse Mojarra 4.0、Helidon 2.5.1 的特性;以及 JNation 会议。 JDK 19 JDK 19 早
深度学习与Python
2023/03/29
7340
Java 近期新闻:JDK 19 进入 Rampdown 阶段,JDK 20 专家组,Eclipse Mojarra 4.0
在JBOSS服务器上使用Myfaces的JSF实现
JBOSS AS服务器默认使用的JSF实现是SUN的RI,要把他替换成Myfaces需要:
EltonZheng
2021/01/22
8700
JSF之经常使用注解
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116350.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/07
5880
JSF本地联调工具实践
Tech 导读 JSF作为京东内部日常最常用的RPC组件,通过JSF扩展,为大家提供JSF扩展思路及本地联调实践。 01 背景 在项目开发中,研发同学会经历下面的过程: 图1 研发日常开发周期 但是针对团队的测试环境,涉及到几个痛点: 多人联调使用时尤其是跨部门联调时,强依赖环境稳定,频繁启停发布或者由于某些原因没有启动成功,影响的不是一个人的,而是多方的 jsf接口逻辑较多,联调环节存在隐晦的bug时,大部分做法是打点日志重启再次调用排查,如果没有发现问题,继续反复加日志重启排查。这样的过程是苦恼且费
京东技术
2022/05/12
1.5K0
JSF本地联调工具实践
map在python2和python3之间的兼容性
本文由腾讯云+社区自动同步,原文地址 http://blogtest.stackoverflow.club/map-has-no-len-in-python3/
羽翰尘
2019/11/20
9830
数据格式和兼容性
第一次尝试用思维导图和英文描述。
哒呵呵
2018/08/06
3680
数据格式和兼容性
Python升级和兼容性配置
Python里面有个现象很奇怪,一般要学习Python都会纠结是学习2和3,这个差别和纠结Java5和Java6是完全不一样的,因为Python里面的兼容性确实是个问题,在《流畅的Python》中写道:Guido(Python之父,仁慈的独裁者)在设计 Python3 的过程中,受一篇文章 “Python warts” 的影响,决定不向后兼容,否则无法修复大多数缺陷,然后Python很火,你要用Python,就得按照这个理念来。兼容性的问题到了开发者这里就是个大麻烦。 Python2
jeanron100
2018/03/22
9940
Python升级和兼容性配置
pickle在python2和python3之间的兼容性
本文由腾讯云+社区自动同步,原文地址 http://blogtest.stackoverflow.club/pickle-in-python2-python3/
羽翰尘
2019/11/21
1.4K0
Jersey 2.x 分支 Java SE 兼容性
https://www.cwiki.us/display/JERSEYZH/Java+SE+Compatibility
HoneyMoose
2019/01/30
5140
兼容性Up!Object Detection API 现已支持 TensorFlow 2
作者 | Vivek Rathod 和 Jonathan Huang,Google Research
磐创AI
2020/09/04
1.1K0
兼容性Up!Object Detection API 现已支持 TensorFlow 2
It appears the JSP version of the container is older than 2.1 and unable to locate the EL RI express
今天调试一个jboss应用的时候发现这个错误。 严重: Unable to instantiate ExpressionFactory 'com.sun.el.ExpressionFactoryImpl' 2008-9-12 11:36:47 org.apache.catalina.core.StandardContext listenerStart 严重: Exception sending context initialized event to listener instance of class
EltonZheng
2021/01/26
6490
如何使用MyFace快速构建基于JSF的应用
如果大家使用Apache MyFace的JSF实现来搭建JSF应用,可以利用Apache提供的便捷maven方法来快速搭建一个初始的应用。
EltonZheng
2021/01/22
9730
兼容性测试-云真机平台atxserver2
1、之前说过提测流程,提测需要开发工程师ShowCase,演示功能点。ShowCase的目的和ShowCase要求爬楼:Showcase通过了才算正式提测
iBigder
2023/01/09
1.8K0
兼容性测试-云真机平台atxserver2
Bom和Dom一些兼容性写法
获取样式 getComputedStyle 普通浏览器 currentStyle 兼容ie 兼容性写法 注意,这个方法在ie下如果获取没有设置的值,如设置了定位但是没有设置top值,获取top会返回auto,而其他浏览器会返回一个具体值,为了避免问题,最好给这个样式设置一个默认值 function getStyle(obj, name) { if (window.getComputedStyle) { return window.getComputedStyle(obj, nu
hss
2022/02/25
3850
Eclipse、NetBeans、IntelliJ
Eclipse作为开发Java的IDE,从出现到现在已经有几年的时间了,其丰富的特性,操作容易和在提高生产力方面收到了广大开发者的青睐。当然一提到Java IDE,人们不禁会提到其他Java IDE像NetBeans、IntelliJ等,那么这些Java IDE之间到底存在着哪些异同呢?
阳光岛主
2019/02/19
2.1K0
51.2Tbps!博通推出全新交换机芯片Tomahawk 5:带宽提升1倍,功耗降低6倍
8月18日消息,据Broadcom表示,本周其推出了速率高达51.2Tbps的Tomahawk 5 ASIC,其商用交换机芯片的数据吞吐量翻了一番。
芯智讯
2022/08/22
2.4K0
51.2Tbps!博通推出全新交换机芯片Tomahawk 5:带宽提升1倍,功耗降低6倍
最近遇到的兼容性问题和适配问题
JS: IE: 1、不能添加监听标准事件,添加polyfill initEvent: function initEvent(dom, eventName, callback) { if (!dom || !eventName || !callback) return; if (document.addEventListener) { // 一般浏览器 dom.addEventListener(eventName, callback, false);
SmileSmith
2018/04/16
1.7K0

相似问题

无法用pinia nuxt3项目运行npm运行构建

15

用码头运行nuxt3

319

npm节点反应与tauri的误差

14

Netlify npm运行构建Nuxt部署失败

14

用nuxt使用NPM包客户端

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档