加载XML文件并读取它以查找节点
本文关键字:查找 节点 读取 XML 文件 加载 | 更新日期: 2023-09-27 18:11:32
我正在尝试创建一个读取xml文件并搜索节点的web服务。但每次我得到一个错误提示return base.Channel.MymethodName(username);
XmlDocument doc = new XmlDocument();
doc.Load("C:''CustomerDatabase.xml");
XmlNode root = doc.DocumentElement;
string searchpath = "//CustomerInformation[CustomerName'" + name + "']";
XmlNode userNode = root.SelectSingleNode(searchpath);
如果我屏蔽了这部分代码,其他一切都可以工作,所以我认为我没有做正确的事情。我已经阅读了所有我能在这里的帖子,但仍然没有运气的问题。有什么建议或帮助吗?
更新:我的xml文件看起来像这样
<CustomerInfo>
<CustomerInformation>
<name>JohnDoe</name>
</CustomerInformation>
</CustomerInfo>
我开始注释我的每一行代码,我认为这是一个问题
XmlNode userNode = root.SelectSingleNode(searchpath);
有什么好办法吗
编辑2:我正在尝试打开该文件,以便查看输入的名称是否在XML文件中。一个人键入JohnDoe,如果它存在,它会发送一个字符串,说这个人已经存在。
试试,
string searchpath = "//CustomerInformation[name='JohnDoe']";
或者使用Linq-XML
var result = (from ele in XDocument.Load(@"c:'CustomerDatabase.xml").Descendants("CustomerInformation")
where ((string)ele.Element("name")) == "JohnDoe"
select ele).FirstOrDefault();
if(result!=null)
{
//
}
您的XPath在我看来很奇怪。我建议你看这里:http://www.w3schools.com/xpath/xpath_syntax.asp
也许这样会更好:
string searchpath = "//CustomerInformation[@CustomerName='" + name + "']";
就像其他人说的,你能提供内部异常和哪一行抛出错误吗?
string searchpath = "//CustomerInformation[./name='" + name + "']";