我正在嘗試使用F#來執行我需要運行的其中一個實用程序作業。使用F#搜索元素,然後添加兄弟節點
從包含xml配置文件的目錄中,我想識別包含特定節點並查找匹配的所有文件,我想在同一個文件中插入兄弟節點。 我寫了一段代碼來識別所有文件,現在我有一系列文件,我想要迭代並搜索屬性並在必要時追加。
open System.Xml.Linq
let byElementName elementToSearch = XName.Get(elementToSearch)
let xmlDoc = XDocument.Load(@"C:\\Some.xml")
xmlDoc.Descendants <| byElementName "Elem"
|> Seq.collect(fun(riskElem) -> riskElem.Attributes <| byElementName "type")
|> Seq.filter(fun(pvAttrib) -> pvAttrib.Value = "abc")
|> Seq.map(fun(pvAttrib) -> pvAttrib.Parent)
|> Seq.iter(printfn "%A")
我想要做的是什麼,而不是最後的printf,添加類型爲"Elem"
的另一個節點與type = "abc2"
<Product name="Node" inheritsfrom="Base">
<SupportedElems>
<Elem type="abc" methodology="abcmeth" />
<Elem type="def" methodology="defmeth" />
</SupportedElems>
</Product>
結果XML:
<Product name="Node" inheritsfrom="Base">
<SupportedElems>
<Elem type="abc" methodology="abcmeth" />
<Elem type="abc2" methodology="abcmeth" /> <!-- NEW ROW TO BE ADDED HERE -->
<Elem type="def" methodology="defmeth" />
你忘記一些關閉標籤? xml文件格式不正確。 – pad 2012-07-16 11:59:02
xml繼續使用類似的標籤..現在編輯問題 – Codex 2012-07-16 12:48:30