加载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,如果它存在,它会发送一个字符串,说这个人已经存在。

加载XML文件并读取它以查找节点

试试,

 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 + "']";