[英]C# Loading an XML file and reading it to find a node
我试图创建一个读取xml文件并搜索节点的Web服务。 但是每次我return base.Channel.MymethodName(username);
错误时都说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);
任何想法我该如何解决
2nd Edit:我正在尝试打开文件,以便可以看到输入的名称是否在XML文件中。 因此,如果JohnDoe存在,那么几乎有人输入该字符串,它会发送一个字符串,说明有人已经存在。
您的XPath对我来说很奇怪。 我建议您看这里: http : //www.w3schools.com/xpath/xpath_syntax.asp
也许这样会更好:
string searchpath = "//CustomerInformation[@CustomerName='" + name + "']";
正如其他人所说,您可以提供内部异常吗?哪一行引发错误?
尝试,
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)
{
//
}
string searchpath = "//CustomerInformation[./name='" + name + "']";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.