Solved

XPath -count no. of specific tag occurences

Posted on 2004-09-25
2
632 Views
Last Modified: 2012-05-05
I am using libxml2 library in C to parse an xml document.  I am trying to count the no. of tags <Book>.  I tried using
"count(//Book)".  But I want the number rather than the node-set.   Is there an xpath expression to do this?

<?xml version="1.0" ?>
- <Book List>
- <Book>
  <Name>book1</Name>
  <Author>author1</Author>
  <Price>15.00</Price>  
  </Book>
- <Book>
  <Name>book2</Name>
  <Author>author2</Author>
  <Price>10.00</Price>  
  </Book>
  </Book List>

Thanks
0
Comment
Question by:inquisitive123
2 Comments
 
LVL 6

Assisted Solution

by:Praesidium
Praesidium earned 250 total points
ID: 12153891
XmlNode[] full = new XmlNode[full.Count];

Seems like this should work for you, count the number of nodes in your node list...  Why do you want the number of nodes, because depending on what you are doing, I may be able to offer you a better alternative...
0
 
LVL 26

Accepted Solution

by:
rdcpro earned 250 total points
ID: 12155402
Well, count(//Book) *is* an XPath eppression that does this.  Well, rather it's an XSLT expression that uses XPath.  But, I don't think there are any methods in Libxml that don't return nodesets...That is, in XSLT such an XPath expression will return a number but using DOM methods, it's not allowed.  You can get the nodelist, then use the DOM length property--this is the standard way of doing it.  I'm not a C programmer, but in Python (using the XPath wrappers for libxml2):

import libxml2

doc = libxml2.parseFile("tst.xml")
ctxt = doc.xpathNewContext()
res = ctxt.xpathEval("//book")
if len(res) != 2:
    print "XPath Query did not return the expected node set"
    sys.exit(1)
doc.freeDoc()
ctxt.xpathFreeContext()

Note that you must explicitly free both the document and the context.

Regards,
Mike Sharp
0

Featured Post

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
installing and using WTP plugin eclipse MARS 3 115
VB.Net and XML XSD Files 1 59
Insert Powershell variable into XML 4 47
XML response optional elements 12 41
The Problem How to write an Xquery that works like a SQL outer join, providing placeholders for absent data on the outer side?  I give a bit more background at the end. The situation expressed as relational data Let’s work through this.  I’ve …
The Client Need Led Us to RSS I recently had an investment company ask me how they might notify their constituents about their newsworthy publications.  Probably you would think "Facebook" or "Twitter" but this is an interesting client.  Their cons…
This Micro Tutorial demonstrates using Microsoft Excel pivot tables, how to reverse engineer competitors' marketing strategies through backlinks.
Two types of users will appreciate AOMEI Backupper Pro: 1 - Those with PCIe drives (and haven't found cloning software that works on them). 2 - Those who want a fast clone of their boot drive (no re-boots needed) and it can clone your drive wh…

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question