私は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
XPathのチートシートについては、[この便利なページ](https://www.w3schools.com/xml/xpath_syntax.asp)を参照してください。 –