2016-11-29 97 views
0

之间这是我的XML文档添加节点:XML:在特定节点

<FolderSettings> 
<quantity>0</quantity> 
<FolderList> 
    <Folder> 
    <FolderName>E:\05.09.2016</FolderName> 
    <Checked>true</Checked> 
    </Folder> 

    <Folder> 
    <FolderName>E:\100CANON</FolderName> 
    <Checked>true</Checked> 
    </Folder> 

    <Folder> 
    <FolderName>G:\Sony</FolderName> 
    <Checked>true</Checked> 
    </Folder> 

</FolderList> 

我想用2个笔记添加文件夹节点到节点FolderList。

<Folder> 
    <FolderName>E:\Nikon</FolderName> 
    <Checked>true</Checked> 
    </Folder> 

每次我选择/添加一个文件夹,哪一个文件夹作为节点添加到FolderList中?

我该怎么做?我尝试了几乎失败的东西。

这是我的代码补充说明到FolderList节点

 Dim xmlFile = XDocument.Load(PXmlFileName) 
     Dim element = <Folder> 
          <FolderName><%= _folderPath$ %></FolderName> 
          <Checked><%= "true" %></Checked> 
         </Folder> 
     Dim parent = xmlFile...<FolderList>.FirstOrDefault() 
     parent.Add(element) 
     xmlFile.Save(PXmlFileName) 

感谢

Public Function UpdateFolderListsIntoXML(_folderPath$) As Boolean 
    Dim _xdoc As New XDocument() 
    Try 
    'Loading: 
     _xdoc = XDocument.Load(PXmlFileName) 
     Dim _lamIsElementExists = Function(_elementName$) 
             Dim _folderlistElement As XElement 
             Try 
              _folderlistElement = _xdoc.Root.Element(_elementName$) 
              If Not IsNothing(_folderlistElement) Then 
               Return True 
              Else 
               Return False 
              End If 
             Catch ex As Exception 
              Return False 
             Finally 
              _folderlistElement = Nothing 
             End Try 
            End Function 
     If _lamIsElementExists("FolderList") = False Then 
      'create FolderList element 
      _xdoc.Root.Element("FolderSettings").Add(<FolderList> 
                </FolderList>) 
      _xdoc.Save(PXmlFileName) 
      'After Create "FolderList" Element loading xml file again 
      _xdoc = XDocument.Load(PXmlFileName) 
     End If 
     'Add New Path into FolderList Element 
     Dim element = <Folder> 
          <FolderName><%= _folderPath$ %></FolderName> 
          <Checked><%= "true" %></Checked> 
         </Folder> 
     Dim parent = _xdoc...<FolderList>.FirstOrDefault() 
     parent.Add(element) 
     _xdoc.Save(PXmlFileName) 
     Return True 
    Catch ex As Exception 
     PeX = ex 
     Return False 
    Finally 
     _xdoc = Nothing 
    End Try 
End Function 

,这是对我工作的罚款...我明白任何建议感谢

+0

显示什么......你试图 –

+0

元素= <%= _folderPath $%> <%= "true" %> 昏暗父= XMLFILE ... .FirstOrDefault() parent.Add(元件) xmlFile.Save(PXmlFileName) – user707407

+1

请使用您使用的代码编辑您的问题,它使它更易读。同样根据你的评论来判断,你可以找到它需要插入的元素,并使用“AddBeforeSelf”。 – DrDonut

回答

1

我建议你可以使用Append而不是Add ..就像我在网上找到的这个例子:

' create new instance of XmlDocument 
Dim doc As New XmlDocument() 

' load from file 
doc.Load(filename) 

' create node and add value 
Dim node As XmlNode = doc.CreateNode(XmlNodeType.Element, "FolderList", Nothing) 
'node.InnerText = "this is new node"; 

' create title node 
Dim nodeTitle As XmlNode = doc.CreateElement("FolderName") 
'add value for it 
nodeTitle.InnerText = "G:\Sony" 

' create Url node 
Dim nodeUrl As XmlNode = doc.CreateElement("Checked") 
nodeUrl.InnerText = "True" 

' add to parent node 
node.AppendChild(nodeTitle) 
node.AppendChild(nodeUrl) 

' add to elements collection 
doc.DocumentElement.AppendChild(node) 

' save back 
doc.Save(filename) 
+0

不工作:(... – user707407

+0

请提供错误信息或不工作的代码部分 – Tyler

+0

您的代码创建重复的FolderList元素然后存储附加值 我想每次将文件夹元素添加到FolderList元素 – user707407