Tôi đã thực hiện một phương pháp kiểm tra xem thuộc tính có tồn tại trong tệp XML hay không. Nếu nó không tồn tại, nó sẽ trả về "False". Nó hoạt động nhưng phải mất rất nhiều thời gian để phân tích cú pháp tệp. Dường như nó đọc toàn bộ tập tin cho mỗi hàng. Tôi đã bỏ lỡ một cái gì đó ở đây? Tôi có thể làm cho nó hiệu quả hơn bằng cách nào đó?Kiểm tra phân tích cú pháp XML nếu thuộc tính tồn tại
public static IEnumerable<RowData> getXML(string XMLpath)
{
XDocument xmlDoc = XDocument.Load("spec.xml");
var specs = from spec in xmlDoc.Descendants("spec")
select new RowData
{
number= (string)spec.Attribute("nbr"),
name= (string)spec.Attribute("name").Value,
code = (string)spec.Attribute("code").Value,
descr = (string)spec.Attribute("descr").Value,
countObject = checkXMLcount(spec),
return specs;
}
public static string checkXMLcount(XElement x)
{
Console.WriteLine(x.Attribute("nbr").Value);
Console.ReadLine();
try
{
if (x.Attribute("mep_count").Value == null)
{
return "False";
}
else
{
return x.Attribute("mep_count").Value;
}
}
catch
{
return "False";
}
}
Tôi đã thử nghiệm để thay thế phương pháp này với một mà chỉ trả lại và nhận chuỗi:
public static string checkXMLcount(string x)
{
Console.WriteLine(x);
Console.ReadLine();
return x;
}
tôi đã thực hiện một XML-file với chỉ một dòng duy nhất. Bảng điều khiển in ra giá trị 15 lần. Bất kỳ ý tưởng?
Tại sao bạn nên viết phiên bản XPath của riêng mình? – raina77ow