2016-11-29 96 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