Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "EclipseLink/UserGuide/MOXy/Runtime/Querying Objects by XPath"

Line 13: Line 13:
 
<source lang="Java">
 
<source lang="Java">
 
Customer customer = (Customer) jaxbContext.createUnmarshaller().unmarshal(instanceDoc);
 
Customer customer = (Customer) jaxbContext.createUnmarshaller().unmarshal(instanceDoc);
 +
 
int customerId = customer.getId();
 
int customerId = customer.getId();
 
customer.setFirstName("Bob");
 
customer.setFirstName("Bob");
 
customer.getPhoneNumber().setAreaCode("555");
 
customer.getPhoneNumber().setAreaCode("555");
 +
 
jaxbContext.createMarshaller().marshal(customer, System.out);
 
jaxbContext.createMarshaller().marshal(customer, System.out);
 
</source>
 
</source>
Line 23: Line 25:
 
<source lang="Java">
 
<source lang="Java">
 
Customer customer = (Customer) jaxbContext.createUnmarshaller().unmarshal(instanceDoc);
 
Customer customer = (Customer) jaxbContext.createUnmarshaller().unmarshal(instanceDoc);
 +
 
int customerId = jaxbContext.getValueByXPath(customer, "@id", null, Integer.class);
 
int customerId = jaxbContext.getValueByXPath(customer, "@id", null, Integer.class);
 
jaxbContext.setValueByXPath(customer, "first-name/text()", null, "Bob");
 
jaxbContext.setValueByXPath(customer, "first-name/text()", null, "Bob");
 
jaxbContext.setValueByXPath(customer, "phone-number/area-code/text()", null, "555");
 
jaxbContext.setValueByXPath(customer, "phone-number/area-code/text()", null, "555");
 +
 
jaxbContext.createMarshaller().marshal(customer, System.out);
 
jaxbContext.createMarshaller().marshal(customer, System.out);
 
</source>
 
</source>

Revision as of 14:12, 25 April 2011

EclipseLink MOXy

Eclipselink-logo.gif
EclipseLink
Website
Download
Community
Mailing ListForumsIRCmattermost
Issues
OpenHelp WantedBug Day
Contribute
Browse Source


Querying Objects by XPath

With EclipseLink MOXy, you do not have to use normal Javabean access methods to get and set values. Instead, you can use the APIs on the JAXBContext itself, at runtime.

For example, instead of:

Customer customer = (Customer) jaxbContext.createUnmarshaller().unmarshal(instanceDoc);
 
int customerId = customer.getId();
customer.setFirstName("Bob");
customer.getPhoneNumber().setAreaCode("555");
 
jaxbContext.createMarshaller().marshal(customer, System.out);

You could use XPath to access these values:

Customer customer = (Customer) jaxbContext.createUnmarshaller().unmarshal(instanceDoc);
 
int customerId = jaxbContext.getValueByXPath(customer, "@id", null, Integer.class);
jaxbContext.setValueByXPath(customer, "first-name/text()", null, "Bob");
jaxbContext.setValueByXPath(customer, "phone-number/area-code/text()", null, "555");
 
jaxbContext.createMarshaller().marshal(customer, System.out);


Eclipselink-logo.gif
Version: 2.2.0 - DRAFT
Other versions...

Back to the top