用c++更新XML节点值

visual Update XML nodevalue with C++

本文关键字:节点 XML 更新 c++      更新时间:2023-10-16

我有一个如下的XML

<ROOT>
  <Device>
    <host>localhost</host>
    <Port>52000</Port>
  </Device>
  <DeviceHost>
    <Server>Server.exe</Server>
    <Port>81</Port>
  </DeviceHost>
  <Settings>
<Flag1>100</Flag1>
<Flag2>2000</Flag2>
  </Settings>
</ROOT>

如何使用vc++将Flag1Flag2分别更新为2004000而不改变其他值?

我用api MSXML写了两个函数。

 doc.LoadXml(Data);//for loading the xml data
 doc.Save(FilePath);//for saving the xml data

但是我的问题是在保存之前如何更新两个节点值

您需要通过调用getElementsByTagName(它应该返回包含一个项目的NodeList)来获得正确的节点,然后调用put_nodeValue来写入值—这里和这里有一些MSDN示例

编辑:你也应该能够使用doc.selectSingleNode("/ROOT/Flag1", &pNode)按照这篇MSDN文章