سؤال

I have this XML:

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

and I have the access to the node . I have some problem in changing the text1 and the text2. Here my code:

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

after that my XML looks like:

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

so it cut off the <answer/> child. Any ideas?

هل كانت مفيدة؟

المحلول

You must change InnerXml. because of your XML is Mixed Complex Type (Complex Type=mixed : xml element can contain attributes, elements, and text) and DOM is not aware completely for this ones. your code can be like this:

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

نصائح أخرى

If this is the line node.ChildNodes[0].InnerText = "new_text1";

that replace

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

then you have already replace the tag <answer>text2</answer> from it

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top