Search in sources :

Example 81 with DTM

use of org.apache.xml.dtm.DTM in project robovm by robovm.

the class SerializerUtils method addAttributes.

// end copyAttributeToTarget method
/**
     * Copy DOM attributes to the result element.
     *
     * @param src Source node with the attributes
     *
     * @throws TransformerException
     */
public static void addAttributes(SerializationHandler handler, int src) throws TransformerException {
    TransformerImpl transformer = (TransformerImpl) handler.getTransformer();
    DTM dtm = transformer.getXPathContext().getDTM(src);
    for (int node = dtm.getFirstAttribute(src); DTM.NULL != node; node = dtm.getNextAttribute(node)) {
        addAttribute(handler, node);
    }
}
Also used : TransformerImpl(org.apache.xalan.transformer.TransformerImpl) DTM(org.apache.xml.dtm.DTM)

Example 82 with DTM

use of org.apache.xml.dtm.DTM in project robovm by robovm.

the class XObject method rtf.

/**
   * Cast result object to a result tree fragment.
   *
   * @param support XPath context to use for the conversion
   *
   * @return the objec as a result tree fragment.
   */
public int rtf(XPathContext support) {
    int result = rtf();
    if (DTM.NULL == result) {
        DTM frag = support.createDocumentFragment();
        // %OPT%
        frag.appendTextChild(str());
        result = frag.getDocument();
    }
    return result;
}
Also used : NodeSetDTM(org.apache.xpath.NodeSetDTM) DTM(org.apache.xml.dtm.DTM)

Example 83 with DTM

use of org.apache.xml.dtm.DTM in project robovm by robovm.

the class XObject method rtree.

/**
   * Cast result object to a result tree fragment.
   *
   * @param support XPath context to use for the conversion
   *
   * @return the objec as a result tree fragment.
   */
public DocumentFragment rtree(XPathContext support) {
    DocumentFragment docFrag = null;
    int result = rtf();
    if (DTM.NULL == result) {
        DTM frag = support.createDocumentFragment();
        // %OPT%
        frag.appendTextChild(str());
        docFrag = (DocumentFragment) frag.getNode(frag.getDocument());
    } else {
        DTM frag = support.getDTM(result);
        docFrag = (DocumentFragment) frag.getNode(frag.getDocument());
    }
    return docFrag;
}
Also used : NodeSetDTM(org.apache.xpath.NodeSetDTM) DTM(org.apache.xml.dtm.DTM) DocumentFragment(org.w3c.dom.DocumentFragment)

Example 84 with DTM

use of org.apache.xml.dtm.DTM in project robovm by robovm.

the class XObjectFactory method create.

/**
   * Create the right XObject based on the type of the object passed.
   * This function <emph>can</emph> make an XObject that exposes DOM Nodes, NodeLists, and 
   * NodeIterators to the XSLT stylesheet as node-sets.
   *
   * @param val The java object which this object will wrap.
   * @param xctxt The XPath context.
   *
   * @return the right XObject based on the type of the object passed.
   */
public static XObject create(Object val, XPathContext xctxt) {
    XObject result;
    if (val instanceof XObject) {
        result = (XObject) val;
    } else if (val instanceof String) {
        result = new XString((String) val);
    } else if (val instanceof Boolean) {
        result = new XBoolean((Boolean) val);
    } else if (val instanceof Number) {
        result = new XNumber(((Number) val));
    } else if (val instanceof DTM) {
        DTM dtm = (DTM) val;
        try {
            int dtmRoot = dtm.getDocument();
            DTMAxisIterator iter = dtm.getAxisIterator(Axis.SELF);
            iter.setStartNode(dtmRoot);
            DTMIterator iterator = new OneStepIterator(iter, Axis.SELF);
            iterator.setRoot(dtmRoot, xctxt);
            result = new XNodeSet(iterator);
        } catch (Exception ex) {
            throw new org.apache.xml.utils.WrappedRuntimeException(ex);
        }
    } else if (val instanceof DTMAxisIterator) {
        DTMAxisIterator iter = (DTMAxisIterator) val;
        try {
            DTMIterator iterator = new OneStepIterator(iter, Axis.SELF);
            iterator.setRoot(iter.getStartNode(), xctxt);
            result = new XNodeSet(iterator);
        } catch (Exception ex) {
            throw new org.apache.xml.utils.WrappedRuntimeException(ex);
        }
    } else if (val instanceof DTMIterator) {
        result = new XNodeSet((DTMIterator) val);
    } else // might also implement a Node!
    if (val instanceof org.w3c.dom.Node) {
        result = new XNodeSetForDOM((org.w3c.dom.Node) val, xctxt);
    } else // also implement NodeList.
    if (val instanceof org.w3c.dom.NodeList) {
        result = new XNodeSetForDOM((org.w3c.dom.NodeList) val, xctxt);
    } else if (val instanceof org.w3c.dom.traversal.NodeIterator) {
        result = new XNodeSetForDOM((org.w3c.dom.traversal.NodeIterator) val, xctxt);
    } else {
        result = new XObject(val);
    }
    return result;
}
Also used : DTMIterator(org.apache.xml.dtm.DTMIterator) OneStepIterator(org.apache.xpath.axes.OneStepIterator) DTMAxisIterator(org.apache.xml.dtm.DTMAxisIterator) DTM(org.apache.xml.dtm.DTM)

Example 85 with DTM

use of org.apache.xml.dtm.DTM in project robovm by robovm.

the class XRTreeFrag method initDTM.

private final void initDTM(int root, XPathContext xctxt) {
    m_dtmRoot = root;
    final DTM dtm = xctxt.getDTM(root);
    if (dtm != null) {
        m_DTMXRTreeFrag = xctxt.getDTMXRTreeFrag(xctxt.getDTMIdentity(dtm));
    }
}
Also used : DTM(org.apache.xml.dtm.DTM)

Aggregations

DTM (org.apache.xml.dtm.DTM)100 XObject (org.apache.xpath.objects.XObject)24 DTMIterator (org.apache.xml.dtm.DTMIterator)23 NodeSetDTM (org.apache.xpath.NodeSetDTM)20 TransformerException (javax.xml.transform.TransformerException)17 XPathContext (org.apache.xpath.XPathContext)16 XMLString (org.apache.xml.utils.XMLString)12 XString (org.apache.xpath.objects.XString)10 SAXException (org.xml.sax.SAXException)10 XNodeSet (org.apache.xpath.objects.XNodeSet)8 XPath (org.apache.xpath.XPath)7 IOException (java.io.IOException)6 Vector (java.util.Vector)6 TransformerImpl (org.apache.xalan.transformer.TransformerImpl)6 DTMAxisTraverser (org.apache.xml.dtm.DTMAxisTraverser)6 SerializationHandler (org.apache.xml.serializer.SerializationHandler)6 QName (org.apache.xml.utils.QName)6 DOMSource (javax.xml.transform.dom.DOMSource)5 Hashtable (java.util.Hashtable)4 ParserConfigurationException (javax.xml.parsers.ParserConfigurationException)4