我有很多xml文件,我正在嘗試編輯。我想要編輯的第一個節點位於所有文件的頂部,並且很容易更改。第二個節點是一個可變的索引,具體取決於我想要編輯的文件。我可以很容易地找到節點,甚至編輯正確的節點,如果我通過一個數字引用它。但是,如果我通過計數器變量引用它,我不能編輯該節點。這可能使用UFT嗎?以下是我到目前爲止。如何通過UFT中的索引變量引用xml節點?
'Create a blank XML document for copying and load xxx.xml file
Set xmlDoc = _
CreateObject("Microsoft.XMLDOM")
xmlDoc.Async = "False"
xmlDoc.Load("G:\xxx\xxx.xml")
'Change the sw version listed at the top of the file to 999
Set colNodes=xmlDoc.selectNodes _
("/Device/Model/SoftwareVersion")
For Each objNode in colNodes
objNode.Text = "999"
Next
'Obtain the part number of the software version
Set swNode=xmlDoc.selectNodes _
("/Device/Model/PartNumber")
For Each objNode in swNode
swPartNumber = objNode.Text
Next
counter = 0
'Set up var to search through all nodes with strucutre Device/MSM/UpdateFile
Set updateFileNodes=xmlDoc.selectNodes _
("/Device/MassStorageMode/UpdateFile")
'Set up var for updatefile block of major to edit later
Set majorSwNode = xmlDoc.selectNodes _
("/Device/MassStorageMode/UpdateFile/Version/Major")
'Set up var for partnumber block of updatefile to search against for a math
Set partNumberNode = xmlDoc.selectNodes _
("/Device/MassStorageMode/UpdateFile/PartNumber")
For Each objNode in updateFileNodes
For Each objNode2 in partNumberNode
counter = counter + 1
curPn = objNode2.Text
isFound = swPartNumber = curPn
If isFound = True Then
Dim index
index = counter - 1
'edit the major sw version here...
Set editNode = xmlDoc.selectsinglenode ("/Device/MassStorageMode/UpdateFile[counter]/Version/Major")
editNode.Text = "9"
xmlDoc.Save "G:\xxx\xxx.xml"
Exit For
End If
Next
Next
我得到一個錯誤,當我運行這一點,但是,如果我改變該行:
設置editNode = xmlDoc.selectsinglenode( 「/設備/ MassStorageMode/UpdateFile [125] /版/專業」 )
在這個特殊情況下使用我的索引變量的值,一切都按預期執行。我需要能夠用我的索引變量替換數字。
似乎這個代碼不使用任何特定的QTP/UFT能力,我認爲你應該重新將其標記爲' vbscript' – Motti