I have two conditions for my VB.NET code. There could be many more than one InterimConditionEvent
each with or without ExpirationDate
child element in XML document.
I need to find ExpirationDate
for the last InterimConditionEvent
in the XML document.
If the last InterimConditionEvent
does not have a ExpirationDate
then find the previous InterimConditionEvent
with ExpirationDate
.
how do I find the preceding InterimConditionEvent
before the last one?
My xml
<Integration xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:tsg="http://tsgweb.com" xmlns:IXML="http://tsgweb.com" xmlns:CMCodeQueryHelper="urn:CMCodeQueryHelper">
<Case InternalID="1617095448" ID="12131576" xmlns:user="http://tylertechnologies.com">
<InterimConditionEvent ID="160850209">
<OrderDate>08/14/2015</OrderDate>
<ExpirationDate>08/14/2015</ExpirationDate>
<Deleted>true</Deleted>
<InterimCondition>
<ConditionType Word="DOMNC">Domestic No Contact</ConditionType>
<EffectiveDate>8/14/2015</EffectiveDate>
<EndDate>8/14/2015</EndDate>
</InterimCondition>
</InterimConditionEvent>
<InterimConditionEvent ID="160850210">
<OrderDate>08/14/2015</OrderDate>
<Deleted>true</Deleted>
<InterimCondition>
<ConditionType Word="DOMNC">Domestic No Contact</ConditionType>
<EffectiveDate>8/14/2015</EffectiveDate>
<EndDate>8/14/2000</EndDate>
</InterimCondition>
</InterimConditionEvent>
</Case>
VB.NET Code
If Not objXmlCaseDoc.DocumentElement.SelectSingleNode("Case/InterimConditionEvent[(Deleted='true') and (InterimCondition/ConditionType/@Word='DOMNC')][position()=last()]/ExpirationDate") Is Nothing Then
strOrderEndDate = objXmlCaseDoc.DocumentElement.SelectSingleNode("Case/InterimConditionEvent[(Deleted='true') and (InterimCondition/ConditionType/@Word='DOMNC')][position()=last()]/ExpirationDate").InnerText
Else
strOrderEndDate = objXmlCaseDoc.DocumentElement.SelectSingleNode("Case/InterimConditionEvent[position()=last()]/ExpirationDate").InnerText
End If
How do I change the following Else
statement to include and has an ExpirationDate
element
strOrderEndDate = objXmlCaseDoc.DocumentElement.SelectSingleNode("Case/InterimConditionEvent/[position()=last()/ExpirationDate").InnerText