<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2650.12">
<TITLE>RE: [jdom-interest] Finding text for an element in an XML Doc</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=2>You can ignore this message. Didn't realize werken.xpath existed. Could have sworn I scrubbed the FAQ but looks like I overlooked it.</FONT></P>

<P><FONT SIZE=2>Thanks Bob,</FONT>
</P>

<P><FONT SIZE=2>sj</FONT>
</P>

<P><FONT SIZE=2>-----Original Message-----</FONT>
<BR><FONT SIZE=2>From: Scott Johnston </FONT>
<BR><FONT SIZE=2>Sent: Thursday, April 19, 2001 8:49 AM</FONT>
<BR><FONT SIZE=2>To: 'mglass@datalinx.net'; jdom-interest</FONT>
<BR><FONT SIZE=2>Subject: RE: [jdom-interest] Finding text for an element in an XML Doc</FONT>
</P>
<BR>

<P><FONT SIZE=2>I actually have been meaning to ask about this. On a recent project I had the same needs but even a step further. I needed to find specific nodes based on their children. I ended up going to the road of partially implementing XSLT searching. I didn't get to attribute specification but this would be easy to add. Right now I did it with utility methods (not by subclassing Element). The controlling utility method looks like this:</FONT></P>

<P><FONT SIZE=2>/** </FONT>
<BR><FONT SIZE=2>&nbsp;* Performs a hierarchy traversal </FONT>
<BR><FONT SIZE=2>&nbsp;* to find a child node. Format of the path is expected like: </FONT>
<BR><FONT SIZE=2>&nbsp;* &lt;code&gt;/root/path/to/child&lt;/code&gt;. The method starts looking from the parent </FONT>
<BR><FONT SIZE=2>&nbsp;* element passed to the method. Note that specifying a non-unique child </FONT>
<BR><FONT SIZE=2>&nbsp;* can cause unexpected results (method with return the first child matching </FONT>
<BR><FONT SIZE=2>&nbsp;* the path). To select children from a list use the query format: </FONT>
<BR><FONT SIZE=2>&nbsp;* &lt;code&gt;/root/path/to(child_node=&quot;value&quot;)/child&lt;/code&gt;. Currently </FONT>
<BR><FONT SIZE=2>&nbsp;* this method only support AND queries in the format </FONT>
<BR><FONT SIZE=2>&nbsp;* (node1=&quot;val1&quot; and node2=&quot;val2&quot;). </FONT>
<BR><FONT SIZE=2>&nbsp;* </FONT>
<BR><FONT SIZE=2>&nbsp;* @param parent the element to start with </FONT>
<BR><FONT SIZE=2>&nbsp;* @param path full path to descendant node </FONT>
<BR><FONT SIZE=2>&nbsp;* @return the matching element, null if none if found </FONT>
<BR><FONT SIZE=2>&nbsp;* </FONT>
<BR><FONT SIZE=2>&nbsp;* @see findChild(Element,String,String) </FONT>
<BR><FONT SIZE=2>&nbsp;*/ </FONT>
<BR><FONT SIZE=2>public static Element getDescendant(Element parent, String path) </FONT>
<BR><FONT SIZE=2>This allows you to get a descendant using &quot;/path/to/element&quot; or </FONT>
<BR><FONT SIZE=2>&quot;/path/to/element(child=&quot;value&quot; and child=&quot;value&quot;)/blah/blah. As I </FONT>
<BR><FONT SIZE=2>mentioned it currently only supports &quot;and&quot; queries and doesn't handle </FONT>
<BR><FONT SIZE=2>attributes. This method was a nice generalization I could use in a </FONT>
<BR><FONT SIZE=2>couple places that parsed config files and messages. </FONT>
<BR><FONT SIZE=2>Anyway I would be happy to contribute code but I'm new to JDOM so I'm </FONT>
<BR><FONT SIZE=2>not sure how I would go about doing that. Seems like it would be a serious </FONT>
<BR><FONT SIZE=2>and possibly confusing change to the API. Thoughts? </FONT>
<BR><FONT SIZE=2>hope all is well, </FONT>
<BR><FONT SIZE=2>sj </FONT>
<BR><FONT SIZE=2>&gt; -----Original Message----- </FONT>
<BR><FONT SIZE=2>&gt; From: Mark Glass [<A HREF="mailto:mglass@datalinx.net">mailto:mglass@datalinx.net</A>] </FONT>
<BR><FONT SIZE=2>&gt; Sent: Thursday, April 19, 2001 8:07 AM </FONT>
<BR><FONT SIZE=2>&gt; To: jdom-interest </FONT>
<BR><FONT SIZE=2>&gt; Subject: [jdom-interest] Finding text for an element in an XML Doc </FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; Hi all, </FONT>
<BR><FONT SIZE=2>&gt;&nbsp;&nbsp; I need some suggestions -- I'm working on an application </FONT>
<BR><FONT SIZE=2>&gt; which reads </FONT>
<BR><FONT SIZE=2>&gt; an XML document, determines the text in a node which is specified by </FONT>
<BR><FONT SIZE=2>&gt; through a config file and returns the ttext. I intened to use XPath, </FONT>
<BR><FONT SIZE=2>&gt; e.g. String elementText = </FONT>
<BR><FONT SIZE=2>&gt; getKeyFieldText(&quot;/root/subelement1/childelement/Text()&quot;). After doing </FONT>
<BR><FONT SIZE=2>&gt; some investigation it appears that XPath is used only for </FONT>
<BR><FONT SIZE=2>&gt; XSL. Are there </FONT>
<BR><FONT SIZE=2>&gt; any libraries available that will allow items to be located in an XML </FONT>
<BR><FONT SIZE=2>&gt; document? </FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; Thanks in advance for your help.. </FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; Mark Glass </FONT>
<BR><FONT SIZE=2>&gt; </FONT>
<BR><FONT SIZE=2>&gt; _______________________________________________ </FONT>
<BR><FONT SIZE=2>&gt; To control your jdom-interest membership: </FONT>
<BR><FONT SIZE=2>&gt; <A HREF="http://lists.denveronline.net/mailman/options/jdom-interest/yo" TARGET="_blank">http://lists.denveronline.net/mailman/options/jdom-interest/yo</A> </FONT>
<BR><FONT SIZE=2>uraddr@yourhost.com </FONT>
</P>

</BODY>
</HTML>