[XML4Lib] xpath expression

Dazhi Jiao dazhi.jiao at gmail.com
Fri Sep 21 11:48:11 EDT 2007


HI, Eric,

You can try this one

//*[starts-with(name(), 'c0')]

Dazhi

On 9/21/07, Eric Lease Morgan <emorgan at nd.edu> wrote:
>
> Can somebody here please tell me a secret XPath expression --
> incantation -- I can use to list all of the elements matching c01 -
> c12 in the following XML snippet:
>
> <ead>
>    <eadheader />
>    <archdesc>
>      <dsc>
>        <!-- insert any number of c or c01 elements here, but not both
> -->
>        <c01>
>          <!-- insert any number of c02 elements here -->
>          <p>co1</p>
>          <c02>
>            <!-- insert any number of c03 elements here -->
>            <p>co2</p>
>            <c03>
>              <!-- insert any number of c04 through c12 elements here -->
>              <p>co3a</p>
>            </c03>
>            <c03>
>              <p>co3b</p>
>            </c03>
>            <c03>
>              <p>co3c</p>
>            </c03>
>          </c02>
>        </c01>
>      </dsc>
>    </archdesc>
> </ead>
>
> The XML snippet above represents an EAD file. Each EAD file can
> contain any number of "components" denoted by elements c or c01
> through c12. Each of these components are often times folders in gray
> boxes on archive shelves.
>
> I want to get a list of all these components, read their child data,
> and index it. I suppose I could something like this:
>
>    <xsl:for-each select='//c01'>
>    </xsl:for-each>
>
> and the repeat it for all the other elements (c02 through c12, plus
> c), but that doesn't seem very efficient. There is probably a better
> way. Something list does not compile:
>
>    <xsl:for-each select='//c*'>
>
> --
> Eric "Needs A Better XPath Reference Book" Morgan
>
>
> _______________________________________________
> XML4Lib mailing list
> XML4Lib at webjunction.org
> http://lists.webjunction.org/mailman/listinfo/xml4lib
>


More information about the XML4Lib mailing list