2013-09-27 84 views
2

以下是我的xml文件的「默認」的結構,我開始用它更新與子節點的XML文件通過一個名爲新子:亞 在「01」
集團 <subGroup id=」x」 GroupLevel=」01.01」 Description=」blablabla」/>
或附加在「02」集團
<subGroup id=」z」 GroupLevel=」01.02」 Description=」blablabla」/>
更多在我下創建一個新的(來自GroupLevel視)和最終結構將會看起來像這樣:用vb.net

<Groups> 
<Group id="01" GroupLevel="01" Description="First Group, Category first"> 
    <subGroups> 
    <subGroupB id=」10」 GroupLevel=」01.01」 Description=」blablabla」/> 
     <GroupA id="21" GroupLevel="01.10" Description=" blablabla "> 
     <subGroupC id=」10」 GroupLevel=」01.21」 Description=」blablabla」/> 
     <GroupB id="33" GroupLevel="01.10.21" Description=" blablabla "> 
      <subGroupD id=」12」 GroupLevel=」01.10.21」 Description=」blablabla」/> 
     </GroupB> 
     </GroupA> 
    </subGroups> 
</Group> 
<Group id="01" GroupLevel="02" Description=" First Group, Category second "> 
    <subGroups> 

    </subGroups> 
</Group> 
……… 
</Groups> 

亞組... B或C或d可能有很多,當然他們必須在每個自身的位置每次都通過。
我已經爲此使用了多種解決方案;但沒有人滿足我的需求
此問題超出了我的個人編程經驗
有人知道我必須做什麼嗎?
如果您請使用vb.net給我一個完整的解決方案;像public class

它需要這樣,因爲最終用戶需要添加一個新的subGroup,具體取決於每個客戶使用的GroupLevel

+1

你能列出你已經嘗試過,爲什麼它不工作? – Matt

+0

我沒有說'沒有工作'我說我收到的不是我的期望。我使用的是全部讀寫xml的內容 –

+0

您的示例顯示了2個使用'id =「01」'的組。這是一個錯字還是你的XML在你的XML中不是唯一的? – CoderDennis

回答

0

如果您使用網framework3.5,我這裏還有一些建議,您可以使用的XDocument,你可以繼續代碼和反饋;)

1)請取出來用的XDocument的Descadents特定的節點或元素函數可能會與First()或FirstOrDefault()結合使用。但是,請首先使用XDocument的Load加載完整的xml文件,注意它的路徑。

2)然後你可以使用XElment的Add方法添加一個新的XElement(參見MSDN樣本:http://msdn.microsoft.com/en-us/library/system.xml.linq.xelement.add(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

3)最後,請使用的XDocument的Save方法重寫XML文件。

+0

是XElement方法...我使用它,但您在這裏看到的問題是搜索正確位置以插入新行。我認爲解決方案不是'使用什麼方法',而是'我們想要的工作流程方法'來解決問題。我仍在搜索 –

+0

您可以使用Xdocument的Descedants(「您的xml節點名稱」)。Where(conditions ......).First()或相關的lambda表達式來定義您正在查找的節點。 – 2013-11-04 12:21:06

+0

我會這樣做,看看產生了什麼。謝謝。保持聯繫 –