检查最后一个节点

时间:2018-12-25 04:58:46

标签: c# xml

我有以下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测试并完成工作。但是我需要知道是否有更好的方法。

0 个答案:

没有答案