我想检查名为 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
答案 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