[英]Vbscript/UFT how to get the Tag elements name to validate Xpath of tag elements
附加的XML示例,在附加的XML中,我想驗證標簽元素是否存在,例如:PayloadList / IFXResp / IFX / GeneralStatus / StatusCode
如果有人可以幫助我獲得上面的xpath代碼,那就太好了。 在vbscript / UFT中查找代碼以打印標簽元素名稱
<?xmlversion="1.0" encoding="UTF-8"?>
<PayloadList>
<Payload>
<IFXResp>
<IFX>
<GeneralStatus>
<StatusCode>0</StatusCode>
<StatusLevel>IFX</StatusLevel>
<StatusDesc>The request was processed successfully.</StatusDesc>
</GeneralStatus>
<Status>
<StatusCode>0</StatusCode>
<Severity>Info</Severity>
<StatusDesc>The request was processed successfully.</StatusDesc>
<SupportUID>DD2B1DFF-57657657-6767-8013-C9787878AF00</SupportUID>
</Status>
<SignonRs>
</IFX>
</IFXResp>
</Payload>
</PayloadList>
如果XPath /PayloadList/Payload/IFXResp/IFX/GeneralStatus/StatusCode
存在,則以下代碼將顯示true
,否則返回false。
Option Explicit
Dim strXMLFilePath, strXPath
strXMLFilePath = "F:\test.xml"
strXPath = "/PayloadList/Payload/IFXResp/IFX/GeneralStatus/StatusCode"
MsgBox fn_readXML(strXMLFilePath,strXPath)
Function fn_readXML(strXMLFilePath, strXPath)
Dim objXML, objNodes
Set objXML = CreateObject("MSXML2.DomDocument")
objXML.async= False
objXML.load strXMLFilePath
With objXML.parseError
If .errorCode = 0 Then
Set objNodes = objXML.selectNodes(strXPath)
If objNodes.length > 0 Then
fn_readXML = True
Else
fn_readXML = false
End If
Else
MsgBox "Cannot parse the XML File!!!" & vbCrLf &_
"Error Code: " & .errorCode & vbCrLf &_
"Reason: " & .reason & vbCrLf &_
"Line: " & .line
End If
End With
Set objXML = Nothing
End Function
您還可以使用selectSingleNode
方法而不是selectNodes
方法,如下圖所示:
Dim objNode
Set objNode = objXML.selectSingleNode(strXPath)
If objNode Is Nothing Then
fn_readXML = False
Else
fn_readXML = True
End If
注意:您的XML最初有錯誤。 標簽<SignonRs>
沒有結束標簽。 在運行代碼之前對其進行修復。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.