在F#中向XML节点添加文本

时间:2012-06-10 22:15:09

标签: xml text f# xmlnode

这是我的XML:

<location>
  <hotspot name="name1" X="444" Y="518" />
  <hotspot name="name2" X="542" Y="452" /> 
  <hotspot name="name3" X="356" Y="15" />
</location>

我想做的是:

<location>
  <hotspot name="name1" X="444" Y="518">
    <text>
      This is the text I want to add in
    </text>
  </hotspot>
  <hotspot name="name2" X="542" Y="452" /> 
  <hotspot name="name3" X="356" Y="15" />
</location>

我无法添加文本,新节点也没问题。

1 个答案:

答案 0 :(得分:3)

由于您使用XmlNode标记了问题,我假设您正在使用XmlDocument中的System.Xml类型(而不是更现代的Linq到XML类型{{1} }})。

要添加带有正文文本的新节点,您可以创建一个新元素(带有所需名称),然后设置其XDocument value属性以指定节点中的文本:

InnerText

您也可以通过在调用// Load XML document and find the parent node let doc = XmlDocument() doc.LoadXml("... your xml goes here ...") let parent = doc.SelectSingleNode("/location/hotspot[@name='name1']") // Create a new element and set its inner text let newNode = doc.CreateElement("text") newNode.InnerText <- "foo" parent.AppendChild(newNode) 时指定属性来编写相同的内容:

CreateElement