关于XmlDocument与XPath的问题(在线!)
Maxu 2003-07-28 10:26:19 private bool SetOptionValue(string userId, string groupId, string optionName, string optionValue)
{
XmlDocument xd = new XmlDocument();
xd.Load("..\\..\\UserOptions.xml");
XmlNode root = xd.DocumentElement;
string p = String.Format("/UserOptions/UserOption[@UserId='{0}']/OptionsGroup[@GroupId='{1}']/Option[@Name='{2}']", userId, groupId, optionName);
XmlNode o = root.SelectSingleNode(p);
o.Attributes["Value"].Value = optionValue;
xd.Save(Console.Out);
return true;
}
调用 SetOptionValue('c', '1', 'distance', '100')
在XmlNode o = root.SelectSingleNode(p);
o得到空值??
命令窗口结果:
root.SelectSingleNode("UserOption[@UserId='c']/OptionsGroup[@GroupId='1']/Option[@Name='distance']")
函数“root.SelectSingleNode”已求值并返回空
root.SelectNodes("UserOption[@UserId='c']/OptionsGroup[@GroupId='1']/Option[@Name='distance']")
{System.Xml.XPath.XPathNodeList}
System.Xml.XmlNodeList: {System.Xml.XPath.XPathNodeList}
list: {Count=0}
iterator: {System.Xml.XPath.XPathSelectionIterator}
done: false
nullparams: {Length=0}
Count: 0
请解答??
文件"..\\..\\UserOptions.xml":
<?xml version="1.0" encoding="utf-8" ?>
<UserOptions xmlns="http://tempuri.org/UserOptions.xsd">
<UserOption UserId="a">
<OptionsGroup GroupId="2">
<Option Name="zoo" Value="12"></Option>
<Option Name="distance" Value="0.5"></Option>
</OptionsGroup>
<OptionsGroup GroupId="1">
<Option Name="zoom" Value="1101"></Option>
<Option Name="distance" Value="0.5"></Option>
</OptionsGroup>
</UserOption>
<UserOption UserId="b">
<OptionsGroup GroupId="1">
<Option Name="zoom" Value="100"></Option>
<Option Name="distance" Value="1"></Option>
</OptionsGroup>
</UserOption>
<UserOption UserId="c">
<OptionsGroup GroupId="1">
<Option Name="zoom" Value="100"></Option>
<Option Name="distance" Value="200"></Option>
</OptionsGroup>
</UserOption>
</UserOptions>