【问题标题】:How do I add a CDATA to an already existing ElementString? (C#)如何将 CDATA 添加到已经存在的 ElementString? (C#)
【发布时间】:2021-06-09 14:52:05
【问题描述】:

我的 XML 文件设置如下:

<Entry>
<Desired_due_date>date</Desired_due_date>
<Order_number>order</Order_number>
<Series_number>series</Series_number>
<Product_name>product</Product_name>
</Entry>

我想在不删除标签 f.e. 的情况下添加 CDATA:

<Product_name>[CDATA[Z19 7HW]]</Product_name>

我找到的每一个解决方案要么创建一个新节点,从而弄乱我的结构,要么丢弃标签。

我的代码如下所示:

writer.WriteComment("Results in XML format."); 
writer.WriteStartElement("Entries");
writer.WriteElementString("Series_number", entries[i].Series_number);
writer.WriteElementString("End_date_2", entries[i].End_date2);
writer.WriteElementString("Norm", entries[i].Norm);
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
writer.Close();

【问题讨论】:

  • 如所写,上面的代码创建了一个根级别的 元素,然后继续直接为单个元素写入值。这与上面使用 元素的 XML 结构不同。这是故意的吗?

标签: c# xml cdata


【解决方案1】:

不要使用XmlWriter.WriteElementString。而是:

writer.WriteStartElement("elementname");
writer.WriteCData("text that goes in CDATA section");
writer.WriteEndElement();

【讨论】:

  • 我之前尝试过这个解决方案,但它为我的元素添加了另一个我不想要的级别。
  • “级别”是指此答案中的代码在您的输出 XML 中添加了不需要的子元素吗?
猜你喜欢
  • 2016-04-10
  • 2021-12-07
  • 2011-03-04
  • 1970-01-01
  • 2022-01-03
  • 1970-01-01
  • 1970-01-01
  • 2020-06-03
  • 1970-01-01
相关资源
最近更新 更多