C# 使用XPath选择XMLNode

C# 使用XPath选择XMLNode,c#,xml,C#,Xml,我在这个例子中看到过多篇文章,但出于某种原因,我尝试返回一个空的XmlNodeList。我错过了什么 我的XML: <string xmlns='http://ws.jobboard.com/resumes/'> <Packet> <Errors /> <PageNumber>1</PageNumber> <SearchTime>02/25/2014 10:11:47</SearchTime> <First

我在这个例子中看到过多篇文章,但出于某种原因,我尝试返回一个空的XmlNodeList。我错过了什么

我的XML:

<string xmlns='http://ws.jobboard.com/resumes/'>
<Packet>
<Errors />
<PageNumber>1</PageNumber>
<SearchTime>02/25/2014 10:11:47</SearchTime>
<FirstRec>1</FirstRec>
<LastRec>100</LastRec>
<Hits>206816</Hits>
<MaxPage>40</MaxPage>
<Results>
  <ResumeResultItem_V3>
    <ContactEmail></ContactEmail>
    <ContactName>Lisa Yada</ContactName>
    <HomeLocation>US-CO-Lakewood</HomeLocation>
    <LastUpdate>2014/2/24</LastUpdate>
    <ResumeTitle>Web Design &amp; Developement</ResumeTitle>
    <JobTitle>Web Design &amp; Developement</JobTitle>
    <RecentEmployer>Some Company</RecentEmployer>
    <RecentJobTitle>Web Design</RecentJobTitle>
    <RecentPay>0</RecentPay>
    <ResumeID>RHV47X78Z5CN56</ResumeID>
    <UserDID>UHT6R86LL8C581</UserDID>
    <ContactEmailMD5>93ce261b843f58962f9</ContactEmailMD5>
    <ActionType />
    <HighestDegree>Bachelor's Degree</HighestDegree>
    <MonthsOfExperience>40</MonthsOfExperience>
    <LastActivity>2/24/2014 1:22:19 PM</LastActivity>
  </ResumeResultItem_V3> ...
我已经尝试了“/string/Packet/Results/resumesultitem_V3”的许多变体,但都没有成功。ws是第三方,因此我无法控制XML的格式。Thanx。因为xml根节点有一个名称空间,所以在调用中需要一个http://ws.jobboard.com/resumes/

请注意,XPath需要明确使用名称空间别名

NameTable nt = new NameTable();
XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt);
nsmgr.AddNamespace("r", "http://ws.jobboard.com/resumes/");

XmlDocument jobsdoc = new XmlDocument(nt);
jobsdoc.LoadXml(xmlstring);

var xnList = jobsdoc.SelectNodes(
                "/r:string/r:Packet/r:Results/r:ResumeResultItem_V3",
                nsmgr);
foreach (XmlNode xn in xnList)
{
    // rest of your code
}
NameTable nt = new NameTable();
XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt);
nsmgr.AddNamespace("r", "http://ws.jobboard.com/resumes/");

XmlDocument jobsdoc = new XmlDocument(nt);
jobsdoc.LoadXml(xmlstring);

var xnList = jobsdoc.SelectNodes(
                "/r:string/r:Packet/r:Results/r:ResumeResultItem_V3",
                nsmgr);
foreach (XmlNode xn in xnList)
{
    // rest of your code
}