XPath Specific Question, Selecting a child given value of another child
I need to retrieve all of these types of nodes:
<parameter value="thisisthename" name="parameters" />
where
type = MyTest
and one of the child <parameter value="c:\temp\svn.exe" name="file" /> equals c:\temp\svn.exe
Right now I have
ert[type='MyTest']/parameters/parameter[@value='c:\temp\svn.exe']
<ert agents="0031">
<type>MyTest</type>
<parameters>
<parameter value="c:\temp\svn.exe" name="file" />
<parameter value="thisisthename开发者_开发知识库" name="parameters" />
<parameter value="200" name="count" />
</parameters>
</ert>
You are almost there. This is the XPath expression you're looking for:
/ert[type='MyTest']/parameters/parameter[@value='c:\temp\svn.exe']/../parameter[@value='thisisthename']
The idea is that you can move up the xml tree using /...
If you happen to know that c:\temp\svn.exe is always somewhere before the parameter node you want, you could also use:
/ert[type='MyTest']/parameters/parameter[@value='c:\temp\svn.exe']/following-sibling::parameter[@value='thisisthename']
This may be a little faster since no backtracking will occur.
I go back to this site whenever I have XPath questions...hopefully it helps you.
http://www.w3schools.com/XPath/xpath_syntax.asp
I need to retrieve all of these types of nodes:
<parameter value="thisisthename" name="parameters" />wheretype = MyTestand one of the child<parameter value="c:\temp\svn.exe" name="file" />equalsc:\temp\svn.exe
All this three conditions, in Xpath:
/ert[type='MyTest']
[parameters/parameter[@value='c:\temp\svn.exe']]
/parameters/parameter[@value][@name]
This means: from an ert root element having a type child with "MyTest" string value and a parameters/parameter grandchild with value attribute equal to "c:\temp\svn.exe", I want all parameters/parameter grandchidren having value and name attributes.
加载中,请稍侯......
精彩评论