Yeah, I did something similar for a while. The XPath is still ugly
IMO. You may be surprised at how fast dom4j can strip them. I did some
tests to see if it was viable, and I think it was only like 10
milliseconds for a decent size document. It was a long time ago though...
--Evan
S. Sharif wrote:
> Thanks for the code. But that might not be too
> efficient for large xml documents, since there would
> be a lot of looping for large xml documents.
>
> I came up with an alternative that seems to work for
> my situation:
>
>
> // Get the namespace uri for inputDocument xml
> document if any
> String namespaceURI =
> inputDocument.getRootElement().getNamespace().getURI();
>
> // Set the namespace uri
> HashMap map = new HashMap();
> // Note: what prefix we choose to use for the
> namespace does not matter
> // In this case we just arbitrarily picked "w" as the
> prefix for the namespace
> map.put("w", namespaceURI);
> NamespaceContext namespaceContext = new
> SimpleNamespaceContext(map);
>
> String primaryXPath =
> "w:Document/w:[EMAIL PROTECTED]'Primary']/w:LOGIN/w:USERID";
> String primaryUserId =
> getXmlElementUsingXPath(inputDocument, primaryXPath,
> namespaceContext)
> .getText();
>
>
>
> And here is the implementation for the
> getXmlElementUsingXPath() method:
>
>
> private static Element
> getXmlElementUsingXPath(Document document,
> String xpathExpression, NamespaceContext
> namespaceContext)
> {
> try
> {
> XPath xpath = new Dom4jXPath(xpathExpression);
> xpath.setNamespaceContext(namespaceContext);
>
> return (Element)
> xpath.selectSingleNode(document);
> }
> catch (JaxenException e)
> {
> System.err.println("Trouble with Jaxen...");
> e.printStackTrace();
>
> return null;
> }
> }
>
>
>
>
> --- Evan Kirkconnell <[EMAIL PROTECTED]> wrote:
>
>
>> Have you not read our ongoing debate? It's very
>> related. :-)
>>
>> Basically, the answer is 'no', but I think it should
>> be 'yes'. If
>> you're bold enough to remove the namespaces, take a
>> look at code here:
>>
>>
>>
> http://www.mail-archive.com/dom4j-user%40lists.sourceforge.net/msg02511.html
>
>
>
> **********************************************************
> * Saladin Sharif
> * e-mail: [EMAIL PROTECTED]
> * Visit homepage @ http://gaia.ecs.csus.edu/~sharifs
> **********************************************************
>
>
>
> ____________________________________________________________________________________
> Never Miss an Email
> Stay connected with Yahoo! Mail on your mobile. Get started!
> http://mobile.yahoo.com/services?promote=mail
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys - and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> dom4j-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/dom4j-user
>
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
dom4j-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dom4j-user