cvcn
-
Posts
4 -
Joined
-
Last visited
Content Type
Profiles
Forums
Events
Posts posted by cvcn
-
-
in your example there is again a const string I can only use node valuesI have changed the code to use a text box call Text1 so I can easy test some query'sSet xmlNodeList = xmlProject.documentElement.selectSingleNode("//Parameterscol/Parameter[1]").selectNodes(Text1.text)the tested query's../Parameter[Name=//Parameterscol/Parameter[1]/Dependency]/ParameterEnum -> ok ParameterEnum: PAR3_1;PAR3_2;PAR3_3../Parameter[Name=string(./Dependency)]/ParameterEnum -> bad../Parameter[//Name=./Dependency]/ParameterEnum -> bad ParameterEnum: PAR2_1;PAR2_2;PAR2_3I realy do not understand why this is not working../Parameter[Name=./Dependency]/ParameterEnum -> bad (I would expect this one to work??? because I ask the Dependency of the context node)if ./Dependency returns PAR3and ../Parameter[Name=PAR3]/ParameterEnum works okwhy is ../Parameter[Name=./Dependency]/ParameterEnum not working
-
Thanks for the replynew XML file with test code<?xml version="1.0"?><Parameterscol><Parameter> <Name>PAR1</Name> <ParameterType>TYPE_ENUM_DPM</ParameterType> <ParameterEnum>PAR1_1;PAR1_2;PAR1_3</ParameterEnum> <Dependency></Dependency> <DependencyValue></DependencyValue></Parameter><Parameter> <Name>PAR2</Name> <ParameterType>TYPE_ENUM_DPM</ParameterType> <ParameterEnum>PAR2_1;PAR2_2;PAR2_3</ParameterEnum> <Dependency>PAR3</Dependency> <DependencyValue></DependencyValue></Parameter><Parameter> <Name>PAR3</Name> <ParameterType>TYPE_ENUM_DPM</ParameterType> <ParameterEnum>PAR3_1;PAR3_2;PAR3_3</ParameterEnum> <Dependency></Dependency> <DependencyValue></DependencyValue></Parameter></Parameterscol>I am working with VB6 & Microsoft XML,v3.0 (Msxml3.dll)this is the codePrivate Sub Command1_Click() Dim xmlProject As DOMDocument Dim xmlNodeList As IXMLDOMNodeList Dim xmlNode As IXMLDOMNode Set xmlProject = New DOMDocument xmlProject.Load "c:\tmp\text.xml" 'get all values txtInfo = "" Set xmlNodeList = xmlProject.documentElement.selectSingleNode("//Parameterscol/Parameter[1]").selectNodes("../Parameter[Name="PAR1"]/ParameterEnum") If Not xmlNodeList Is Nothing Then For Each xmlNode In xmlNodeList Debug.Print xmlNode.baseName & ": " & xmlNode.Text Next End If Set xmlNode = Nothing Set xmlNodeList = Nothing Set xmlProject = NothingEnd Sub this returns: ParameterEnum: PAR1_1;PAR1_2;PAR1_3if I change the code to Set xmlNodeList = xmlProject.documentElement.selectSingleNode("//Parameterscol/Parameter[1]").selectNodes("../Parameter[Name="PAR3"]/ParameterEnum")It returns: ParameterEnum: PAR3_1;PAR3_2;PAR3_3Now I would like the query to use the value of Parameter[1]/Dependency == "PAR1"if I change the code to Set xmlNodeList = xmlProject.documentElement.selectSingleNode("//Parameterscol/Parameter[1]").selectNodes("../Parameter[Name=//Parameterscol/Parameter[1]/Dependency]/ParameterEnum")It returns: ParameterEnum: PAR1_1;PAR1_2;PAR1_3My problem is in the real project i do not know that I can find the Dependency value at //Parameterscol/Parameter[1]/DependencyI only know that I need the Dependency value of the current selected SingleNode
-
Hi, take following xml<Parameterscol> <Parameter> <Name>PAR1</Name> <ParameterType>TYPE_ENUM_DPM</ParameterType> <ParameterEnum>test1;test2;test3</ParameterEnum> <Dependency></Dependency> <DependencyValue></DependencyValue> </Parameter> <Parameter BaseName="Parameter" RemoveOnCreate="1"> <Name>PAR2</Name> <ParameterType>TYPE_VALUE</ParameterType> <ParameterEnum></ParameterEnum> <Dependency>PAR1</Dependency> <DependencyValue></DependencyValue> </Parameter></Parameterscol>Starting from the 2 parameter DependencyValueXpath: ../Parameter[Name=PAR1]/ParameterEnum returns: test1;test2;test3How can i use the value of @Dependency to get the same result?something like ../Parameter[Name=@Dependency]/ParameterEnum is not working!!
Xpath ?? how to use a value to query a other value
in XML
Posted
../Dependency is not workingI am sure I am on the ./Dependeny level because with ./Dependency I get : Dependency: PAR3and with . I get : Parameter: PAR2 TYPE_ENUM_DPM PAR2_1;PAR2_2;PAR2_3 PAR3with .. I get : Parameterscol: PAR1 TYPE_ENUM_DPM PAR1_1;PAR1_2;PAR1_3 PAR2 TYPE_ENUM_DPM PAR2_1;PAR2_2;PAR2_3 PAR3 PAR3 TYPE_ENUM_DPM PAR3_1;PAR3_2;PAR3_3