1
我正在使用HTMLAgilityPack读取和加载XML文件。文件加载后,我想从它插入到数据库中的值。C#Xpath仅返回第一个元素
XML看起来是这样的:
<meeting>
<jobname></jobname>
<jobexperience></jobexperience>
</meeting>
我试图完成一个foreach循环中这样使用XPath语句,在这里看到:
DataTable dt = new DataTable();
//Add Data Columns here
dt.Columns.Add("JobName");
dt.Columns.Add("JobExperience");
// Create a string to read the XML tag "job"
string xPath_job = "//job";
string xPath_job_experience = "//jobexperience";
/* Use a ForEach loop to go through all 'meeting' tags and get the values
from the 'JobName' and 'JobExperience' tags */
foreach (HtmlNode planned_meeting in doc.DocumentNode.SelectNodes("//meeting"))
{
DataRow dr = dt.NewRow();
dr["JobName"] = planned_meeting.SelectSingleNode(xPath_job).InnerText;
dr["JobName"] = planned_meeting.SelectSingleNode(xPath_job_experience).InnerText;
dt.Rows.Add(dr);
}
所以问题是,即使在foreach循环正在经历每个“会议”标记,它只从第一个“会议”标记获取值。
任何帮助将不胜感激!
我觉得你的XPath查询应该仅仅是'作业名称''和'jobexperience',没有斜杠。 –
Yup xPath_ *变量不能有斜杠。 – StuartLC
请参阅[此便利页](https://www.w3schools.com/xml/xpath_syntax.asp)了解XPath备忘单。 –