當我嘗試更新XML文檔中的值時,不是編輯現有值,而是繼續使用新值插入新節點。編輯XML屬性導致創建新節點
如果已經試過這兩種方法具有相同的結果...
var doc = XDocument.Parse(xmlString);
XElement shippingElement = (from xml2 in doc
.Elements("extradata").Elements("SharedCustomAppData")
.Elements("clsNameValues").Elements("clsnamevalue")
where xml2.Element("name").Attribute("Value").Value == "SHOP_FLOOR_INSTR"
select xml2).FirstOrDefault();
shippingElement.Element("value").Attribute("Value").Value = "Changed!";
而且
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(oLine.ExtraData);
XmlNodeList nodes = xmlDoc.SelectNodes(
"extradata/SharedCustomAppData/clsNameValues/clsnamevalue");
foreach (XmlNode node in nodes)
{
XmlNode nameNode = node.SelectSingleNode("name");
if (nameNode != null && nameNode.Attributes["Value"].Value == "SHOP_FLOOR_INSTR")
{
XmlNode valueNode = node.SelectSingleNode("value");
if (valueNode != null)
{
valueNode.Attributes["Value"].Value = line.SHOP_FLOOR_INSTR;
}
}
}
XML的部分我想更新如下所示:
<SharedCustomAppData>
<clsNameValues>
<clsnamevalue>
<name Value="SHOP_FLOOR_INSTR" />
<value Value="Current value" />
</clsnamevalue>
</clsNameValues>
</SharedCustomAppData>
你的Linq到Xml代碼在這個xml上工作正常。你能用* extradata *元素顯示整個xml嗎? –