benim XML'inde bir düğüm TestCase temsil bu sınıf var: C#, XML Nasıl XMLNode.SelectSingleNode ile getirilen bir XML düğümü üzerinden döngüsü için
public class TestCase
{
[XmlAttribute("name")]
public string name { get; set; }
public string version { get; set; }
public string verdict { get; set; }
public string objective { get; set; }
public string criteria { get; set; }
public string issue { get; set; }
public string clientcomments { get; set; }
public string authoritycomments { get; set; }
public string sdk { get; set; }
}
ben belirli bir düğüm getirmek için XmlNode.SelectSingleNode kullanmak benim XML. Bilgi için, önemli olan düğümler (aynı isim niteliğine sahip düğüm yok) yoktur.
public static TestCase FetchNode(string NodeName, string Path)
{
TestCase testcase = new TestCase();
string[] attr = { "name", "version", "verdict", "objective", "criteria"
, "issue", "clientcomments", "authoritycomments", "sdk" };
string[] attrval = { null, null,null,null,null,null,null,null,null};
XmlDocument doc = new XmlDocument();
doc.Load(Path);
XmlNode node = doc.SelectSingleNode("/TestsList/TestCase[@name='" + NodeName + "']");
for (var i = 0; i == attr.Length - 1;i++)
{
attrval[i] = node[attr[i]].InnerText;
}
testcase.name = attrval[0];
testcase.version = attrval[1];
testcase.verdict = attrval[2];
testcase.objective = attrval[3];
testcase.criteria = attrval[4];
testcase.issue = attrval[5];
testcase.clientcomments = attrval[6];
testcase.authoritycomments = attrval[7];
testcase.sdk = attrval[8];
return testcase;
}
Ancak, bu kod benim sınıf yapısını değiştirmek, ben sınıfın her elemanı, çünkü işlevini değiştirmek gerekir, hiç ölçeklenebilir değildir:
Şimdiye kadar, bu kod var kodlanmış.
Bu geniş bir sorundur, ancak bu işlevi nasıl yazabilirim, böylece TestCase sınıf tanımında bir dize ekler veya çıkarırsam, FetchNode işlevini değiştirmem gerekir.
Zaman ayırdığınız için teşekkür ederiz.
Çok fazla değişiklik olmadan iyi çalıştı. Teşekkür ederim. –