[英]how to validate XML node text using vbscript
这是我的XML文件。
<PARAMETER>
<ETPAR_GUIX>
<item>
<PNAME>COAS_1</PNAME>
<PTYP>X</PTYP>
<PDESC>Generated Table for View</PDESC>
<PINDEX>0001</PINDEX>
<PGROUP>GETTAB</PGROUP>
<XMLREF_TYP>T</XMLREF_TYP>
<PSTRUC_TYP>T</PSTRUC_TYP>
<PREF_TYPE>VIEW</PREF_TYPE>
<PREF_NAME>COAS</PREF_NAME>
<PDATLEN>0000</PDATLEN>
<PINTLEN>000000</PINTLEN>
<PDECIMALS>000000</PDECIMALS>
<SORT_LNR>0001</SORT_LNR>
<PREF_NAME2>COAS</PREF_NAME2>
<VAL_TYPE>T</VAL_TYPE>
<TAB_INDEX>0</TAB_INDEX>
</item>
<item>
<PNAME>I_ORDER_NUMBER_FROM_TABLE</PNAME>
<PTYP>I</PTYP>
<PDESC>Generated Table for View</PDESC>
<PINDEX>0001</PINDEX>
<PGROUP>I.01</PGROUP>
<XMLREF_TYP>T</XMLREF_TYP>
<PSTRUC_TYP>T</PSTRUC_TYP>
<PREF_TYPE>VIEW</PREF_TYPE>
<PREF_NAME>COAS</PREF_NAME>
<PDATLEN>0000</PDATLEN>
<PINTLEN>000000</PINTLEN>
<PDECIMALS>000000</PDECIMALS>
<SORT_LNR>0001</SORT_LNR>
<PREF_NAME2>COAS</PREF_NAME2>
<VAL_TYPE>T</VAL_TYPE>
<TAB_INDEX>0</TAB_INDEX>
</item>
</ETPAR_GUIX>
</PARAMETER>
我想检查XML节点<PNAME>
是否以字母“ I”开头。 如果所有XML节点<PNAME>
都不以字母“ I”开头,则VB脚本应显示错误。 这是我尝试过的vb脚本:
Const XMLDataFile = "D:\Automation\imp\p.xml"
Set xmlDoc = CreateObject("Microsoft.XMLDOM")
xmlDoc.Async = False
xmlDoc.Load(XMLDataFile)
xmlDoc.validateOnParse = True
If xmlDoc.Load(XMLDataFile) Then
msgbox "SUCCESS loading XML File"
Else
msgbox "ERROR loading XML File"
End If
counter=0
Set root = xmlDoc.documentElement
Set items = root.childNodes
for each item in items
myPNAME = xmlDoc.getElementsByTagName("PNAME").item(counter).text
If (Left(myPNAME, 1) = "I") Then
IsValid = True
else
IsValid=false
End If
next
上面的VB脚本代码检查是否以“ I”开头的每个<PNAME>
字母si。 但是,如果XML节点<PNAME>
字母都不以字母“ I”开头,则VB脚本应显示错误。 请帮我。 先感谢您。
您需要在循环外将IsValid
设置为False
,如果找到第一个匹配项,则将其值更改为True
。 更改此:
for each item in items
myPNAME = xmlDoc.getElementsByTagName("PNAME").item(counter).text
If (Left(myPNAME, 1) = "I") Then
IsValid = True
else
IsValid=false
End If
next
到这个:
IsValid = False
For Each item In items
myPNAME = xmlDoc.getElementsByTagName("PNAME").item(counter).text
If Left(myPNAME, 1) <> "I" Then
IsValid = True
Exit For
End If
Next
'At this point the value of IsValid is True if at least one node text started
'with a capital I. Otherwise its value is False.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.