如果G_Q1中的值等于x,谁能给我提示如何从G_Q9中获取值? 如果值G_Q1 <> x,则继续到下一个G_Q1。 我不喜欢XML文件的格式,但是我必须适应它。
const MyApp = createDrawerNavigator({
Home: {
screen: Home
},
Form: {
screen: props => <Form {...props} id={0} />
},
{
....
}
})
<Form {..props} id={0} />
我通过将<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Generated by Oracle Reports version 12.2.1.3.0 -->
<WOKE611>
<LIST_G_Q1>
<G_Q1>
<Value>1234</Value>
<LIST_G_Q9>
<G_Q9>
<Value>0</Value>
</G_Q9>
<G_Q9>
<Value>1</Value>
</G_Q9>
</LIST_G_Q9>
</G_Q1>
<G_Q1>
<Value>5678</Value>
<LIST_G_Q9>
<G_Q9>
<Value>0</Value>
</G_Q9>
<G_Q9>
<Value>1</Value>
</G_Q9>
</LIST_G_Q9>
</G_Q1>
</LIST_G_Q1>
</WOKE611>
更改为Dim i
Set objXMLDoc = CreateObject("Msxml2.DOMDocument.6.0")
objXMLDoc.Async = False
objXMLDoc.Load("C:\temp\shortXml.xml")
Set NodeList = objXMLDoc.SelectNodes("//G_Q1/*")
For i = 1 To NodeList.Length
Set CurrNode = NodeList.NextNode
If CurrNode.Text = "1234" Then
WScript.Echo("How to continue to get the value of G_Q9/Value ?")
End If
Next
来解决了这个问题。
答案 0 :(得分:2)
显然,您添加到问题中的假定解决方案实际上不可能解决您描述的问题(至少在没有对代码进行进一步修改的情况下是不可能的),因为它将遍历所有 XML节点而不是只选择所需的值。
正确解决问题的方法看起来像这样:
xpath = "//G_Q1[Value='1234']/LIST_G_Q9/G_Q9/Value"
Set NodeList = objXMLDoc.SelectNodes(xpath)
For Each n In NodeList
WScript.Echo n.Text
Next
将WScript.Echo n.Text
替换为您需要执行的其他处理。