我想查看一个对象,看看元素ErrorCode是否为零

时间:2017-09-28 21:09:57

标签: xml vb.net

我想检查名为 objXmlCaseListResponseElement 的对象内部,以查看名为 ErrorCode 的子元素是否为零。如果它没有零,我想显示一条错误消息,然后退出sub

我不知道如何使我的if语句有效。这样我就可以读取ErrorCode中的值,看是否为零,然后显示错误信息。

这是vb.net对象名称 objXmlCaseListResponseElement

objXmlCaseListResponseElement = objCourtRecordService.GetCaseList(objXmlEfsCaseListRequestDoc.DocumentElement)

此对象 objXmlCaseListResponseElement 包含以下xml文档

<?xml version="1.0" encoding="UTF-8"?>
<CaseListResponseMessage xmlns="urn:oasis:names:tc:legalxml-courtfiling:schema:xsd:CaseListResponseMessage-4.0" xmlns:ecf="urn:oasis:names:tc:legalxml-courtfiling:schema:xsd:CommonTypes-4.0">
    <ecf:Error>
        <ecf:ErrorCode>0</ecf:ErrorCode>

    </ecf:Error>
</CaseListResponseMessage>

这是我正在尝试但它不会工作。我收到错误Option Strict On禁止从'String'到'Double'的隐式转换。

objXmlCaseListResponseElement = objCourtRecordService.GetCaseList(objXmlEfsCaseListRequestDoc.DocumentElement)

  If objXmlCaseListResponseElement.SelectSingleNode("ecf:Error/ecf:ErrorCode", aobjXmlNamespaceManager).InnerText <> 0 Then
        aobjBroker.Reply(ProduceServiceInformationResponseMessage(aobjXmlInputSoapEnvelopeDoc, aobjXmlRequestMessageNode, aobjConsumer, strCaseTrackingID, intNodeID, strCourtORI, strCourtName, aobjXmlNamespaceManager, astrVersionLevel, aobjBroker, 1, "Invalid ErrorCode"))
       Exit Sub
End If

1 个答案:

答案 0 :(得分:0)

XMLNode's InnerText Property是一个字符串。在使用Option Strict进行布尔评估时,必须确保等式两边的类型相同。解决问题的简单方法是在引号中包含0以使其成为字符串:

If objXmlCaseListResponseElement.SelectSingleNode("ecf:Error/ecf:ErrorCode", aobjXmlNamespaceManager).InnerText <> "0" Then
    aobjBroker.Reply(ProduceServiceInformationResponseMessage(aobjXmlInputSoapEnvelopeDoc, aobjXmlRequestMessageNode, aobjConsumer, strCaseTrackingID, intNodeID, strCourtORI, strCourtName, aobjXmlNamespaceManager, astrVersionLevel, aobjBroker, 1, "Invalid ErrorCode"))
    Exit Sub
End If