【问题标题】:XML access to a child innertext对子内部文本的 XML 访问
【发布时间】:2012-07-10 19:22:26
【问题描述】:

我有这个 XML:

<location>
  <character name="name" mask="pap.png" X="397" Y="60">
    <look reaction="False">
      text1
      <answer>text2</answer>
    </look>
    <talk xml=""/>
  </character>
</location>

我可以访问节点。我在更改text1text2 时遇到了一些问题。这是我的代码:

node.ChildNodes[0].InnerText = "new_text1";
node.ChildNodes[0].ChildNodes[0].InnerText = "new_text2"; //this doesn't work

之后我的 XML 看起来像:

<location>
  <character name="name" mask="pap.png" X="397" Y="60">
    <look reaction="False">text1</look>
    <talk xml=""/>
  </character>
</location>

所以它切断了&lt;answer/&gt; 孩子。有什么想法吗?

【问题讨论】:

    标签: c# .net xml innertext


    【解决方案1】:

    您必须更改InnerXml。因为您的 XML 是 Mixed Complex Type(Complex Type=mixed : xml 元素可以包含属性、元素和文本),而 DOM 对此并不完全了解。你的代码可以是这样的:

    node.ChildNodes[0].InnerXml = "new_text1 <answer>new_text2</answer>";
    

    【讨论】:

      【解决方案2】:

      如果这是node.ChildNodes[0].InnerText = "new_text1";这一行

      替换

      <look reaction="False">
            text1
            <answer>text2</answer>
          </look>
      

      那么你已经用它替换了标签&lt;answer&gt;text2&lt;/answer&gt;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-08-05
        • 2020-12-07
        • 2020-10-06
        • 2015-10-31
        • 1970-01-01
        • 2011-10-06
        • 2013-11-02
        • 1970-01-01
        相关资源
        最近更新 更多