package com.ausregistry.jtoolkit2.tmdb.xml; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; import com.ausregistry.jtoolkit2.tmdb.model.TmContact; import org.w3c.dom.Node; public class TmContactXmlParser { public TmContact parse(Node contactNode) throws XPathExpressionException { XPath xPath = XPathFactory.newInstance().newXPath(); TmContact tmContact = new TmContact(); tmContact.setType(xPath.evaluate("@type", contactNode)); tmContact.setName(xPath.evaluate("name", contactNode)); tmContact.setOrganisation(xPath.evaluate("org", contactNode)); TmAddressXmlParser addressXmlParser = new TmAddressXmlParser(); Node addressNode = (Node) xPath.evaluate("addr", contactNode, XPathConstants.NODE); if (addressNode != null) { tmContact.setAddress(addressXmlParser.parse(addressNode)); } tmContact.setVoice(xPath.evaluate("voice", contactNode)); tmContact.setVoiceExtension(xPath.evaluate("voice/@x", contactNode)); tmContact.setFax(xPath.evaluate("fax", contactNode)); tmContact.setFaxExtension(xPath.evaluate("fax/@x", contactNode)); tmContact.setEmail(xPath.evaluate("email", contactNode)); return tmContact; } }