-1

这是我的 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>

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

4

1 回答 1

3

由于您用 标记了问题XmlNode,我假设您使用的是XmlDocumentfrom 类型System.Xml(而不是更现代的 Linq to XML 类型XDocument)。

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

// 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如下所示:

doc.CreateElement("text", InnerText = "foo") |> nd.AppendChild
于 2012-06-10T22:20:56.733 回答