【问题标题】:unable to change the value of an XML tag无法更改 XML 标记的值
【发布时间】:2012-08-10 15:14:17
【问题描述】:

这是 XML:

<PolicyChangeSet schemaVersion="2.1" username="" description="">
    <Attachment name="" contentType="">
        <Description/>
        <Location></Location>
    </Attachment>
</PolicyChangeSet>

我只是想在“位置”标签之间添加值“XXX”。

我试过了,但它不起作用:

    string newValue = string.Empty;
    XmlDocument xmlDoc = new XmlDocument();

    xmlDoc.Load(AppVars.pxCentralXMLPayloadFilePath);
    node = xmlDoc.SelectSingleNode("/PolicyChangeSet/Attachment/location");

    node.InnerText = "XXX";

    xmlDoc.Save(AppVars.pxCentralXMLPayloadFilePath);

我错过了什么?!

【问题讨论】:

    标签: c# xml xmlnode


    【解决方案1】:

    doc.Save(@"XML 文件路径"); //这会将更改保存到文件中。

    【讨论】:

    • 对不起,保存文件在我的原始代码中。我更新了问题。我仍然在 node.InnerText = "XXX"; 处得到一个空异常。
    【解决方案2】:

    请使用 ChildNodesXmlDocument 的迭代 - 如 MS 支持网站的 walkthrough 中所述。根据documentationSelectSingleNode()方法:

    不应期望 XmlNode “实时”连接到 XML 文档。也就是说,出现在 XML 文档中的更改可能不会 出现在 XmlNode 中,反之亦然。

    【讨论】:

    • 对不起,保存文件在我的原始代码中。我更新了问题。我仍然在 node.InnerText = "XXX"; 处得到一个空异常。
    【解决方案3】:

    找出问题出在 CASE SENSITIVITY。

    【讨论】:

    • 已找到原因 - 修改无效,因为SelectSingleNode 预计不会与源XmlDocument 连接 - 请参阅updated answer
    猜你喜欢
    • 1970-01-01
    • 2013-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 1970-01-01
    相关资源
    最近更新 更多