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?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top