I'm having some problems getting a node of XML document in C#
I need to make a program that enables the user to edit the <LimitValue> of each <ControlItem>.
I have already tried to get a node with GetElementById but it always return null and I can't understand why.
This is my xml document:
<?xml version="1.0" encoding="utf-8"?>
<GradeLimits GradeName="1.0305" GradeDescription="P235G1TH (St35.8)" Norm="Trafilspec" BaseElement="Fe">
<ControlItems>
<ControlItem Name="C" DisplayUnit="%" Impurity="False">
<LimitValue Type="UpperWarningLimit" Kind="Absolute" Unit="%">0.17000000178813934</LimitValue>
<LimitValue Type="UpperAcceptanceLimit" Kind="Absolute" Unit="%">0.18000000715255737</LimitValue>
</ControlItem>
<ControlItem Name="Si" DisplayUnit="%" Impurity="False">
<LimitValue Type="UpperWarningLimit" Kind="Absolute" Unit="%">0.34999999403953552</LimitValue>
<LimitValue Type="UpperAcceptanceLimit" Kind="Absolute" Unit="%">0.37000000476837158</LimitValue>
</ControlItem>
<ControlItem Name="Mn" DisplayUnit="%" Impurity="False">
<LimitValue Type="LowerWarningLimit" Kind="Absolute" Unit="%">0.40000000596046448</LimitValue>
<LimitValue Type="UpperWarningLimit" Kind="Absolute" Unit="%">0.800000011920929</LimitValue>
<LimitValue Type="LowerAcceptanceLimit" Kind="Absolute" Unit="%">0.37999999523162842</LimitValue>
<LimitValue Type="UpperAcceptanceLimit" Kind="Absolute" Unit="%">0.8399999737739563</LimitValue>
</ControlItem>
<ControlItem Name="P" DisplayUnit="%" Impurity="False">
<LimitValue Type="UpperWarningLimit" Kind="Absolute" Unit="%">0.039999999105930328</LimitValue>
<LimitValue Type="UpperAcceptanceLimit" Kind="Absolute" Unit="%">0.05000000074505806</LimitValue>
</ControlItem>
<ControlItem Name="S" DisplayUnit="%" Impurity="False">
<LimitValue Type="UpperWarningLimit" Kind="Absolute" Unit="%">0.039999999105930328</LimitValue>
<LimitValue Type="UpperAcceptanceLimit" Kind="Absolute" Unit="%">0.05000000074505806</LimitValue>
</ControlItem>
</ControlItems>
</GradeLimits>
I've tried to do this too, but it doesn't work:
foreach (FileInfo file in Files)
{
count1++;
if (count1 == select) {
namefile = Files[select].Name;
doc.Load(@"C:\Users\lab\Desktop\copy\spectro\"+namefile);
var node = doc.SelectSingleNode("//*[@Name='C']");
Console.WriteLine(node);
}
}
For example in this case the <ControlItem Name="C"> has <LimitValue Type="UpperWarningLimit" ...>0.17000</limitvalue>, and I want to give the user the possibility of setting the value that they want.
I can't read the node and I don't know how to set this value either.