属性がXMLファイルに存在するかどうかをチェックするメソッドを作成しました。存在しない場合は "False"を返します。それは動作しますが、ファイルを解析するのに非常に時間がかかります。それはそれが各単一の行のための全体のファイルを読むようだ。私はここで何かを逃したのですか?どういうわけかもっと効果的にすることはできますか?属性が存在するかどうかXML解析チェック
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";
}
}
私は1つだけが戻って方法を交換し、文字列を受け取るためにテスト:
public static string checkXMLcount(string x)
{
Console.WriteLine(x);
Console.ReadLine();
return x;
}
私はただ1つの行を持つXMLファイルを作りました。コンソールは値を15回印刷します。何か案は?あなたはこれを試してみて、どんな改善
class xmlAttributes
{
public string Node;
public Dictionary<string, string> Attributes;
}
は、このLINQで今そこにあるかどうかを確認することができます
XPathの独自のバージョンを作成するのはなぜですか? – raina77ow