C# 使用c更新xml文件的属性值#
我有一个如下所示的xml 我想更新具有PARAMCODE=“cd3”的最后一个IP元素中参数的值属性。 IP元素的数量正在动态变化C# 使用c更新xml文件的属性值#,c#,xml,xpath,xmldocument,C#,Xml,Xpath,Xmldocument,我有一个如下所示的xml 我想更新具有PARAMCODE=“cd3”的最后一个IP元素中参数的值属性。 IP元素的数量正在动态变化 SelectSingleNode(String)仅选择与XPath表达式匹配的第一个XmlNode。 我不知道选择最后一个IP元素的XPath表达式。请帮助我 <?xml version="1.0"?> <START> <TYPE CODE="1"> <D1> <G1>100202&
SelectSingleNode(String)
仅选择与XPath表达式匹配的第一个XmlNode。我不知道选择最后一个IP元素的XPath表达式。请帮助我
<?xml version="1.0"?>
<START>
<TYPE CODE="1">
<D1>
<G1>100202</G1>
<G2>01-10-2013 01:22:02</G2>
</D1>
<D2>
<INSTPARAM CODE="cd1" VALUE="212.94" >
</INSTPARAM>
<INSTPARAM CODE="cd2" VALUE="212.72" >
</INSTPARAM>
</D2>
<D4 INTERVALPERIOD="15">
<DATA DATE="01-10-2013">
<IP INTERVAL="1">
<PARAMETER PARAMCODE="cd3" VALUE="0" >
</PARAMETER>
<PARAMETER PARAMCODE="cd4" VALUE="0" >
</PARAMETER>
<PARAMETER PARAMCODE="cd5" VALUE="0" >
</PARAMETER>
</IP>
<IP INTERVAL="2">
<PARAMETER PARAMCODE="cd3" VALUE="0" >
</PARAMETER>
<PARAMETER PARAMCODE="cd4" VALUE="0" >
</PARAMETER>
<PARAMETER PARAMCODE="cd5" VALUE="0" >
</PARAMETER>
</IP>
<IP INTERVAL="3">
<PARAMETER PARAMCODE="cd3" VALUE="0" >
</PARAMETER>
<PARAMETER PARAMCODE="cd4" VALUE="0" >
</PARAMETER>
<PARAMETER PARAMCODE="cd5" VALUE="0" >
</PARAMETER>
</IP>
<IP INTERVAL="4">
<PARAMETER PARAMCODE="cd3" VALUE="0" >
</PARAMETER>
<PARAMETER PARAMCODE="cd4" VALUE="0" >
</PARAMETER>
<PARAMETER PARAMCODE="cd5" VALUE="0" >
</PARAMETER>
</IP>
<IP INTERVAL="5">
<PARAMETER PARAMCODE="cd3" VALUE="0" >
</PARAMETER>
<PARAMETER PARAMCODE="cd4" VALUE="0">
</PARAMETER>
<PARAMETER PARAMCODE="cd5" VALUE="0" >
</PARAMETER>
</IP>
<IP INTERVAL="6">
<PARAMETER PARAMCODE="cd3" VALUE="0" > //need to update the value of VALUE attribute of this element
</PARAMETER>
<PARAMETER PARAMCODE="cd4" VALUE="0" >
</PARAMETER>
<PARAMETER PARAMCODE="cd5" VALUE="0" >
</PARAMETER>
</IP>
</DATA>
</D4>
</TYPE>
</START>
100202
01-10-2013 01:22:02
//需要更新此元素的value属性的value
选择SingleNode(string)
不一定返回第一个
元素,这取决于您使用的XPath。您可以尝试简单地在XPath中添加[last()]
,以获取最后匹配的元素,例如:
var ip = doc.SelectSingleNode("//IP[PARAMETER[@PARAMCODE='cd3']][last()]");
ip.FirstChild.Attributes["VALUE"].Value = "100";
-1 12xx代表,但我们仍然必须告诉您如何提问?SelectSingleNode有什么不起作用?显示您使用的xpath的代码。@inferon:Sorry…我是c#和xml新手。