Full xpath support in visual basic?

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

Hi,

In an excel 2003 VB application I address data using XPath. I'm using
filters in the XPath expression, however I'm disturbed to see that filters
only works at last node in an expressions like

"/root/foo/bar[@no='5']"

and do not work in this expression

"/root/foo[@no='5']/bar"

Some of my code looks like this:

Set xp = ActiveSheet.Range("j32").XPath
xp.SetValue ActiveWorkbook.XmlMaps(mymapname),
"/pipe-int/pipe_design/cross_sectional_design/layers/layer[@no='14']/outer_diameter"

Is it correct that filters are only supported at last node, I really can't
imagine this but I've tried different setups that support this question. Am I
missing some dll's or do you have any idea of what could be wrong?
 
Thank you Nick,

Does anyone know why MS has chosen this stripped down xpath parser?

regard Jesper.

NickHK said:
Jesper,
Not that I know anything about XPath, but:
http://msdn.microsoft.com/library/en-us/odc_xl2003_ta/html/odc_xl_Excel2003XMLIntro.asp
<Quote>
An optional filter can be expressed at the end of the xpath.
Example: "/ns1:root/ns1:row/ns1:column1[@foo='abc']" is supported but not
"/ns1:root/ns1:row[@foo='abc']/ns1:column1"
</Quote>

NickHK

Jesper said:
Hi,

In an excel 2003 VB application I address data using XPath. I'm using
filters in the XPath expression, however I'm disturbed to see that filters
only works at last node in an expressions like

"/root/foo/bar[@no='5']"

and do not work in this expression

"/root/foo[@no='5']/bar"

Some of my code looks like this:

Set xp = ActiveSheet.Range("j32").XPath
xp.SetValue ActiveWorkbook.XmlMaps(mymapname),
"/pipe-int/pipe_design/cross_sectional_design/layers/layer[@no='14']/outer_d
iameter"

Is it correct that filters are only supported at last node, I really can't
imagine this but I've tried different setups that support this question. Am I
missing some dll's or do you have any idea of what could be wrong?
 
Back
Top