Tôi đang gặp sự cố khi xử lý một số tệp XML (ở cuối bài đăng này).Việc sử dụng chính xác của XmlNode.SelectSingleNode (xpath chuỗi) trong C# là gì?
tôi đã viết đoạn mã sau để có được Job_Id
dữ liệu liên quan đến một Job_Name
mẫu cho mà chủ sở hữu Job_Owner
là người sử dụng chạy các probram:
List<String> jobID = new List<String>();
XmlNodeList nodes = xml.SelectNodes("//Job");
foreach (XmlNode node in nodes)
{
innerNode = node.SelectSingleNode("//Job_Owner"); // SelectSingleNode here always selects the same node, but I thought it should be relative to node, not to nodes
if (!innerNode.InnerText.Contains(Environment.UserName))
{
continue;
}
innerNode = node.SelectSingleNode("//Job_Name");
if (!Regex.IsMatch(innerNode.InnerText, jobNamePattern, RegexOptions.Compiled))
{
continue;
}
innerNode = node.SelectSingleNode("//Job_Id");
jobID.Add(innerNode.InnerText);
}
Tôi mong rằng node.SelectSingleNode("//Job_Name")
tìm kiếm cho một từ khóa duy nhất tên là Job_Name
theo mã xml được biểu thị bởi node
.
Đó không phải là những gì nó có vẻ thể xảy ra, vì nó luôn luôn quay trở lại cùng một nút, không quan trọng vào những gì bước của foreach
nó là (tức là node
chọn từ nodes
thay đổi, nhưng node.SelectSingleNode("//Job_Name")
luôn trả lại cùng một nội dung).
Điều gì sai với mã này?
Cảm ơn trước!
-
XML file trông như thế này:
<Data>
<Job>
<Job_Id>58282.minerva</Job_Id>
<Job_Name>sb_net4_L20_sType1</Job_Name>
<Job_Owner>[email protected]</Job_Owner>
<!--more tags-->
</Job>
<Job>
<!--etc etc etc-->
</Job>
<!--etc etc etc-->
</Data>
chương trình này bây giờ là dậy và chạy! =) ~ Cảm ơn câu trả lời! – Girardi