【问题标题】:How to Set value to XmlNode without using InnerText如何在不使用 InnerText 的情况下将值设置为 XmlNode
【发布时间】:2013-10-21 05:12:08
【问题描述】:

我想为一些 XmlNode 设置值,但我不想使用 InnerText - 还有其他方法吗?

我需要的xml是

  <ns1:id>123456</ns1:id>

所以我这样做了

   XmlNode node = doc.CreateElement( doc.DocumentElement.Prefix, "id", doc.DocumentElement.NamespaceURI );
   node.InnerText = "123456";

但我想在不使用 InnerText 的情况下做到这一点... => 有没有办法做到这一点?

谢谢

【问题讨论】:

  • 尝试使用该值...不起作用:(
  • Value 可能无法与 XmlElement 一起正常工作(至少我现在记得是这样)。另一种选择是InnerXml。我觉得 OP 想要的不仅仅是另一个名称不同的属性。如果不是,我想知道如果 InnerText 完成工作,为什么它是不可取的。
  • 我认为您应该可以append text node... 还提供InnerText 不可接受的原因可能有助于解答。
  • stackoverflow.com/q/7877609/81053 试试node.FirstChild.Value

标签: c# xml


【解决方案1】:

文本是具有节点类型文本的一个(更多)节点的实例。因此,如果您愿意,可以直接将文本节点附加/替换到您的元素。

XmlDocument.CreateTextNode 包含一个关于如何做到这一点的示例:

//Create a new node and add it to the document. 
//The text node is the content of the price element.
XmlElement elem = doc.CreateElement("price");
XmlText text = doc.CreateTextNode("19.95");
doc.DocumentElement.AppendChild(elem);
doc.DocumentElement.LastChild.AppendChild(text);

请注意,您可能需要先删除旧的子文本节点。

【讨论】:

    猜你喜欢
    • 2016-01-19
    • 1970-01-01
    • 2018-03-21
    • 1970-01-01
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    • 2012-04-23
    相关资源
    最近更新 更多