我有以下xml。如何测试最后一个节点?
<PatientDetailsXML>
<PList>
<PName type="Patient">
<properties>
<Room bedType="Auto" />
<PName title="Joe Beom" PId="1234">
<Details>
<classification classification="paymenttype" category="Wallet" />
<classification classification="Humor" category="None" />
<classification classification="Food" category="Fruit" />
</Details>
</PName>
</properties>
<childEvents>
</childEvents>
</PName>
<PName type="Patient">
<properties>
<Room bedType="Auto" />
<PName title="John Bair" PId="1234">
<Details>
<classification classification="paymenttype" category="Found" />
<classification classification="Humor" category="None" />
<classification classification="Food" category="Fruit" />
</Details>
</PName>
</properties>
<childEvents>
</childEvents>
</PName>
<!-- End of List -->
</PList>
</PatientDetailsXML>
在for循环中,我以<!-- End of List -->
结尾,我对注释进行了测试,但随后还需要测试此后是否没有节点。
var nodes = docs.SelectNodes(query).OfType<XmlNode>().ToArray();
XmlNodeList nodeList = docs.SelectNodes(query);
for (int i = 0; i < nodes.Count(); i++)
{
XmlNode multinextnode = nodes[i];
if (multinextnodetest == "#comment")
{
multinextnode.NextSibling;
{
if (multinextnode.Equals(multinextnode.LastChild))
{
Console.WriteLine("final");
}
// some code
}
}
// somecode
}
此multinextnode.Equals(multinextnode.LastChild)
似乎不适合我。在for循环中,正如您在multinextnode.NextSibling
上方所看到的,我跳到下一个节点。这对于用代码实现我的目标是绝对必要的。但是在跳跃过程中,我可能会在null
中击中multinextnode
。这意味着在此之后,</PList>
之前没有子/兄弟/节点。所以我需要对后代进行测试
现在,我只是在做一个null测试并完成工作。但是我需要知道是否有更好的方法。