RE: jdom-interest Digest, Vol 49, Issue 6

"Martinez, Will" <[email protected]>
Newsgroups gmane.comp.java.jdom.general
Message-ID <86DB933313FD7B4B9713942084783C8D02B681AB@COENGEXCMB01.cable.comcast.com>
Fabio,

I encountered the same problem, if not similar to what you are describing.  I submitted my question to this group but did not receive a reply.

 

My next step is to use Xpath.  I had been busy on other tasks, but plan to tackle Xpath today.  I am new to Xpath, so we'll see how far I get.

 

This is what I had posted:

 

I have this xml file that I need to access the Text "Dish."  I have listed what semi works and does not work.  Please see attached file.

 

<CatParameters xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <CatInputs>

        <InputValue Name="Food">

            <From>MotherCat</From>

            <Where>

                <On>Dish</On>

            </Where>

            <Get Name="Tom">WHITE</Get>

            <Get Name="Jerry">BLACK</Get>

            <Get Name="Sam">GREY</Get>

        </InputValue>

 

descendant_2 = Where

secondDescendant_1 = On

descendant_3 = Get

attributeValue = Name

 

With this syntax, I am able to get at Dish, but that is because an attribute is not associated with

the element On.

String secondDescendant1Data = subParentElement.getChild(descendant_2).getChildText(secondDescendant_1);

System.out.print("\n secondDescendant1 Text: " + secondDescendant1Data);// child's descendant2 Where Dish

 

I get WHITE with this, but I do not have a way of getting to the next element  BLACK.

//String secondDescendant3Data = subParentElement.getChild(descendant_3).getValue();//This works!

 

I get Tom with this syntax;

//String secondDescendant3Data = subParentElement.getChild(descendant_3).getAttribute(attributeValue).getValue();

 

 

With this syntax I get the actual attribute: Name;

//String secondDescendant3Data = subParentElement.getChild(descendant_3).getAttribute(attributeValue).getName();//Name

 

I need syntax like this;

//String secondDescendant3Data = subParentElement.getChild(descendant_3).getAttributeValue(attributeValue).getText(of Tom);

 

But there isnt an API method that works!

Might you be able to suggest a solution?

 

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of [email protected]
Sent: Sunday, November 23, 2008 1:00 PM
To: [email protected]
Subject: jdom-interest Digest, Vol 49, Issue 6

 

Send jdom-interest mailing list submissions to

      [email protected]

 

To subscribe or unsubscribe via the World Wide Web, visit

      http://www.jdom.org/mailman/listinfo/jdom-interest

or, via email, send a message with subject or body 'help' to

      [email protected]

 

You can reach the person managing the list at

      [email protected]

 

When replying, please edit your Subject line so it is more specific

than "Re: Contents of jdom-interest digest..."

 

 

Today's Topics:

 

   1. using JDOM 1.1 on Android's Dalvik VM (Sean Sullivan)

   2. Jdom with XMI Files (Fabio Leal)

   3. RE: Jdom with XMI Files (Michael Kay)

   4. RE: Jdom with XMI Files (Michael Kay)

 

 

----------------------------------------------------------------------

 

Message: 1

Date: Sat, 22 Nov 2008 16:05:46 -0800

From: "Sean Sullivan" <[email protected]>

Subject: [jdom-interest] using JDOM 1.1 on Android's Dalvik VM

To: [email protected]

Message-ID:

      <[email protected]>

Content-Type: text/plain; charset="iso-8859-1"

 

I'm trying to use JDOM 1.1 on the Android 1.0 platform.

 

The Android platform supports most Java 5 API's.  However, java.rmi.*

classes are not part of the Android platform.

 

When I use JDOM 1.1 on Android, I see this error:

 

 

W/dalvikvm(  327): VFY: unable to resolve check-cast 98

(Ljava/rmi/RemoteException;) in Lorg/jdom/JDOMException;

W/dalvikvm(  327): VFY:  rejecting opcode 0x1f at 0x003d

W/dalvikvm(  327): VFY:  rejected

Lorg/jdom/JDOMException;.getNestedException

(Ljava/lang/Throwable;)Ljava/lang/Throwable;

W/dalvikvm(  327): Verifier rejected class Lorg/jdom/JDOMException;

D/AndroidRuntime(  327): Shutting down VM

W/dalvikvm(  327): threadid=3: thread exiting with uncaught exception

(group=0x40010e28)

E/AndroidRuntime(  327): Uncaught handler: thread main exiting due to

uncaught exception

E/AndroidRuntime(  327): java.lang.VerifyError: org.jdom.JDOMException

 

 

I looked at the JDOM source code and noticed that org.jdom.JDOMException

uses java.rmi.RemoteException:

 

        if (parent instanceof RemoteException) {

            return ((RemoteException)parent).detail;

        }

 

 

In order for this code to run on Android, we would need to eliminate

java.rmi.RemoteException from JDOMException.java

 

One possible fix (?) is to use reflection to retrieve the "detail" field:

 

        if (parent.getClass().getName().startsWith("java.rmi.")) {

            try    {

                Field f = parent.getClass().getField("detail");

                return (Throwable) f.get(parent);

            } catch (Exception ignore) {

                // ignored

            }

        }

 

Using 'startsWith' is a hack. The intent is to detect

java.rmi.RemoteException as well as all

subclasses of java.rmi.RemoteException from the java.rmi pacakge.

 

  http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/RemoteException.html

 

Is there a better way to code this?  Any other comments?

 

Sean

-------------- next part --------------

An HTML attachment was scrubbed...

URL: http://www.jdom.org/pipermail/jdom-interest/attachments/20081122/3df43c07/attachment-0001.htm

 

------------------------------

 

Message: 2

Date: Sun, 23 Nov 2008 00:09:34 -0300

From: "Fabio Leal" <[email protected]>

Subject: [jdom-interest] Jdom with XMI Files

To: [email protected]

Message-ID:

      <[email protected]>

Content-Type: text/plain; charset="iso-8859-1"

 

Hy everybody...

I'm trying to manipulate a XMI file with Jdom, and I have experienced some

difficulties doing it.

 

For example:

All the subnodes of the root Element have the "same name", but have

different attributes.

How can I choose a specific "Element", by specifying it's attributes?

 

Another point is that the attributes started with "xmi:" aren't recognized

by Jdom. I've already tested a bunch of things to make it recognizable, but

all of them were unsuccessful. =/

 

I think that my problems are quite easy to solve, but I haven't found

anything that could help me in the web.

If Jdom isn't a great tool with XMI, could you suggest me other?

 

 

*Xmi file that i want to read:

http://www.omg.org/spec/UML/20061001/Superstructure.cmof

 

 

Cheers,

Fábio Leal

-------------- next part --------------

An HTML attachment was scrubbed...

URL: http://www.jdom.org/pipermail/jdom-interest/attachments/20081123/08303f56/attachment-0001.htm

 

------------------------------

 

Message: 3

Date: Sun, 23 Nov 2008 13:58:22 -0000

From: "Michael Kay" <[email protected]>

Subject: RE: [jdom-interest] Jdom with XMI Files

To: "'Fabio Leal'" <[email protected]>,

      <[email protected]>

Message-ID: <373A40C0FF5B4348A9D7581488867D89@Sealion>

Content-Type: text/plain; charset="iso-8859-1"

 

It's a good idea to show the code you were using, then people can tell you

where you went wrong.

 

It looks a bit as if you haven't grasped how namespaces work, but without

seeing your attempts, that's a guess.

 

Michael Kay

http://www.saxonica.com/

 

 

  _____  

 

From: [email protected] [mailto:[email protected]]

On Behalf Of Fabio Leal

Sent: 23 November 2008 03:10

To: [email protected]

Subject: [jdom-interest] Jdom with XMI Files

 

 

Hy everybody...

I'm trying to manipulate a XMI file with Jdom, and I have experienced some

difficulties doing it. 

 

For example: 

All the subnodes of the root Element have the "same name", but have

different attributes.

How can I choose a specific "Element", by specifying it's attributes?

 

Another point is that the attributes started with "xmi:" aren't recognized

by Jdom. I've already tested a bunch of things to make it recognizable, but

all of them were unsuccessful. =/

 

I think that my problems are quite easy to solve, but I haven't found

anything that could help me in the web.  

If Jdom isn't a great tool with XMI, could you suggest me other?

 

 

*Xmi file that i want to read:

http://www.omg.org/spec/UML/20061001/Superstructure.cmof

 

 

Cheers,

Fábio Leal

 

 

 

-------------- next part --------------

An HTML attachment was scrubbed...

URL: http://www.jdom.org/pipermail/jdom-interest/attachments/20081123/d56b168f/attachment-0001.htm

 

------------------------------

 

Message: 4

Date: Sun, 23 Nov 2008 15:07:26 -0000

From: "Michael Kay" <[email protected]>

Subject: RE: [jdom-interest] Jdom with XMI Files

To: "'Fabio Leal'" <[email protected]>

Cc: [email protected]

Message-ID: <B5CD911C957041ACA1914AF3B58A06C9@Sealion>

Content-Type: text/plain;     charset="US-ASCII"

 

> 

> You were right. I am quite confuse when manipulating namespaces.

> Could you give me a help there?

 

Please don't go off-list. When people search the archives, they want to find

the answers, not only the questions!

> 

> For example, how could I get to the Element:

> 

>  <ownedMember xmi:type="cmof:Package" xmi:id="StateMachines"

> name="StateMachines">

> 

> (this is a root's child) without using 

> rootElement.getchildren() and iterating over it?

 

Use Element.getChild(name, namespace)

> 

> How could I get its child attributes without using

> myElement.getAttributes() and iterating over it?

 

Use Element.getAttribute(name, namespace)

 

Michael Kay

http://www.saxonica.com/

 

 

 

------------------------------

 

_______________________________________________

To control your jdom-interest membership:

http://www.jdom.org/mailman/options/jdom-interest/[email protected]

 

End of jdom-interest Digest, Vol 49, Issue 6

********************************************

_______________________________________________
To control your jdom-interest membership:
http://www.jdom.org/mailman/options/jdom-interest/[email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.