我正在尝试将“列”列表附加到此xml文件中:
<?xml version="1.0" encoding="UTF-8"?>
<Conf>
<name List="A">
<columns>1</columns>
<columns>2</columns>
<columns>3</columns>
<columns>4</columns>
<columns>5</columns>
<columns>6</columns>
</name>
<name List="B">
<columns>1</columns>
<columns>2</columns>
<columns>3</columns>
<columns>4</columns>
<columns>5</columns>
<columns>6</columns>
<columns>9</columns>
</name>
</Conf>
到目前为止我所拥有的:
Sub NewNodeInXMLFile(ByVal strPath As String, ByVal PriceList As String, ByVal columns As List(Of String))
Dim XMLd As New XmlDocument
XMLd.Load(strPath)
Dim xmlEl As XmlElement = XMLd.CreateElement("name")
Dim xmlAttr As XmlAttribute = XMLd.CreateAttribute("List")
xmlAttr.Value = PriceList
xmlEl.Attributes.Append(xmlAttr)
For Each x In columns
xmlEl.InnerXml = "<columns></columns>"
xmlEl.Item("columns").InnerText = x
'//what goes in here to append this item?
Next
XMLd.DocumentElement.AppendChild(xmlEl)
XMLd.Save(strPath)
End Sub
基本上,我知道每件事都不会附加物品;它只是写下列表的最后一个值。有没有办法追加这些物品?
由于
答案 0 :(得分:1)
试试这个:
For Each x In columns
Dim newColumn = XMLd.CreateElement("columns")
newColumn.Value = x
xmlEl.AppendChild(newColumn)
Next
xml.GetElementsByTagName("PriceFilesConf")[0].AppendChild(xmlEl);
答案 1 :(得分:0)
您应该使用Linq XElement API。更容易使用。但是用以下代码替换你的循环代码应该有效:
For Each x In columns
Dim newElement as XmlElement = XMLd.CreateElement("columns")
newElement.InnerText = x
xmlEl.AppendChild(newElement)
Next
您还需要更改:
XMLd.DocumentElement.AppendChild(xmlEl)
致:XMLd.AppendChild(xmlEl)