我有以下列格式的XML文件查詢XML和更新某些元件
<?xml version="1.0" ?>
<AA someattrib="xyz">
<BB someOtherAttrib="xyz">
<Title></Title>
<CC>
<myNode rowid="">
<subNode1></subNode1>
<subNode2></subNode2>
<nodeOfInterest></nodeOfInterest>
</myNode >
<myNode rowid="">
<subNode1> </subNode1>
</myNode>
</CC>
</BB>
</AA>
我想使用的LINQ由其中ROWID是特定數量的名稱「MYNODE」挑選出一個節點,我將從一個對象的集合中獲取。一旦我得到myNode,我想要更新子節點nodeOfInterest的值(如果它存在)。如果不存在,那麼我想補充一下。一旦完成,我想保存該文件。
這是我目前的情況,但它可能不是正確的做法。
foreach (User employee in Users)
{
XPathNavigator node = xNav.SelectSingleNode("/AA/BB/CC/myNode[@rowid = '"+employee.ID.ToString()+"']");
XPathNodeIterator nodeIterator= node.SelectChildren("nodeOfInterest", "");
if (nodeIterator.Count == 1)
{
}
else
{
}
}
有沒有一種方法可以使用List和內存中的xmldoc之間的直接連接?這將是一個大列表和一個同樣大的xml文件。我不認爲運行循環並調用selectSingleNode是最有效的方法。
感謝您的輸入
'元素'從哪裏來的呢從來沒有宣佈過 –
元素應該是myNode,我相信 – mungflesh
對不起。 Mungflesh是對的。謝謝。 – user20358