Search in sources :

Example 1 with XmlComment

use of nokogiri.XmlComment in project gocd by gocd.

the class NokogiriHelpers method constructNode.

/**
 * Construct a new XmlNode wrapping <code>node</code>.  The proper
 * subclass of XmlNode is chosen based on the type of
 * <code>node</code>.
 */
public static IRubyObject constructNode(Ruby runtime, Node node) {
    if (node == null)
        return runtime.getNil();
    // this is slow; need a way to cache nokogiri classes/modules somewhere
    switch(node.getNodeType()) {
        case Node.ELEMENT_NODE:
            XmlElement xmlElement = (XmlElement) NokogiriService.XML_ELEMENT_ALLOCATOR.allocate(runtime, getNokogiriClass(runtime, "Nokogiri::XML::Element"));
            xmlElement.setNode(runtime.getCurrentContext(), node);
            return xmlElement;
        case Node.ATTRIBUTE_NODE:
            XmlAttr xmlAttr = (XmlAttr) NokogiriService.XML_ATTR_ALLOCATOR.allocate(runtime, getNokogiriClass(runtime, "Nokogiri::XML::Attr"));
            xmlAttr.setNode(runtime.getCurrentContext(), node);
            return xmlAttr;
        case Node.TEXT_NODE:
            XmlText xmlText = (XmlText) NokogiriService.XML_TEXT_ALLOCATOR.allocate(runtime, getNokogiriClass(runtime, "Nokogiri::XML::Text"));
            xmlText.setNode(runtime.getCurrentContext(), node);
            return xmlText;
        case Node.COMMENT_NODE:
            XmlComment xmlComment = (XmlComment) NokogiriService.XML_COMMENT_ALLOCATOR.allocate(runtime, getNokogiriClass(runtime, "Nokogiri::XML::Comment"));
            xmlComment.setNode(runtime.getCurrentContext(), node);
            return xmlComment;
        case Node.ENTITY_NODE:
            return new XmlNode(runtime, getNokogiriClass(runtime, "Nokogiri::XML::EntityDecl"), node);
        case Node.ENTITY_REFERENCE_NODE:
            XmlEntityReference xmlEntityRef = (XmlEntityReference) NokogiriService.XML_ENTITY_REFERENCE_ALLOCATOR.allocate(runtime, getNokogiriClass(runtime, "Nokogiri::XML::EntityReference"));
            xmlEntityRef.setNode(runtime.getCurrentContext(), node);
            return xmlEntityRef;
        case Node.PROCESSING_INSTRUCTION_NODE:
            XmlProcessingInstruction xmlProcessingInstruction = (XmlProcessingInstruction) NokogiriService.XML_PROCESSING_INSTRUCTION_ALLOCATOR.allocate(runtime, getNokogiriClass(runtime, "Nokogiri::XML::ProcessingInstruction"));
            xmlProcessingInstruction.setNode(runtime.getCurrentContext(), node);
            return xmlProcessingInstruction;
        case Node.CDATA_SECTION_NODE:
            XmlCdata xmlCdata = (XmlCdata) NokogiriService.XML_CDATA_ALLOCATOR.allocate(runtime, getNokogiriClass(runtime, "Nokogiri::XML::CDATA"));
            xmlCdata.setNode(runtime.getCurrentContext(), node);
            return xmlCdata;
        case Node.DOCUMENT_NODE:
            XmlDocument xmlDocument = (XmlDocument) NokogiriService.XML_DOCUMENT_ALLOCATOR.allocate(runtime, getNokogiriClass(runtime, "Nokogiri::XML::Document"));
            xmlDocument.setDocumentNode(runtime.getCurrentContext(), node);
            return xmlDocument;
        case Node.DOCUMENT_TYPE_NODE:
            XmlDtd xmlDtd = (XmlDtd) NokogiriService.XML_DTD_ALLOCATOR.allocate(runtime, getNokogiriClass(runtime, "Nokogiri::XML::DTD"));
            xmlDtd.setNode(runtime, node);
            return xmlDtd;
        default:
            XmlNode xmlNode = (XmlNode) NokogiriService.XML_NODE_ALLOCATOR.allocate(runtime, getNokogiriClass(runtime, "Nokogiri::XML::Node"));
            xmlNode.setNode(runtime.getCurrentContext(), node);
            return xmlNode;
    }
}
Also used : XmlDtd(nokogiri.XmlDtd) XmlNode(nokogiri.XmlNode) XmlEntityReference(nokogiri.XmlEntityReference) XmlProcessingInstruction(nokogiri.XmlProcessingInstruction) XmlComment(nokogiri.XmlComment) XmlElement(nokogiri.XmlElement) XmlText(nokogiri.XmlText) XmlDocument(nokogiri.XmlDocument) XmlAttr(nokogiri.XmlAttr) XmlCdata(nokogiri.XmlCdata)

Example 2 with XmlComment

use of nokogiri.XmlComment in project nokogiri by sparklemotion.

the class NokogiriHelpers method constructNode.

/**
 * Construct a new XmlNode wrapping <code>node</code>.  The proper
 * subclass of XmlNode is chosen based on the type of
 * <code>node</code>.
 */
public static IRubyObject constructNode(Ruby runtime, Node node) {
    if (node == null) {
        return runtime.getNil();
    }
    // this is slow; need a way to cache nokogiri classes/modules somewhere
    switch(node.getNodeType()) {
        case Node.ELEMENT_NODE:
            XmlElement xmlElement = (XmlElement) NokogiriService.XML_ELEMENT_ALLOCATOR.allocate(runtime, getNokogiriClass(runtime, "Nokogiri::XML::Element"));
            xmlElement.setNode(runtime, node);
            return xmlElement;
        case Node.ATTRIBUTE_NODE:
            XmlAttr xmlAttr = (XmlAttr) NokogiriService.XML_ATTR_ALLOCATOR.allocate(runtime, getNokogiriClass(runtime, "Nokogiri::XML::Attr"));
            xmlAttr.setNode(runtime, node);
            return xmlAttr;
        case Node.TEXT_NODE:
            XmlText xmlText = (XmlText) NokogiriService.XML_TEXT_ALLOCATOR.allocate(runtime, getNokogiriClass(runtime, "Nokogiri::XML::Text"));
            xmlText.setNode(runtime, node);
            return xmlText;
        case Node.COMMENT_NODE:
            XmlComment xmlComment = (XmlComment) NokogiriService.XML_COMMENT_ALLOCATOR.allocate(runtime, getNokogiriClass(runtime, "Nokogiri::XML::Comment"));
            xmlComment.setNode(runtime, node);
            return xmlComment;
        case Node.ENTITY_NODE:
            return new XmlNode(runtime, getNokogiriClass(runtime, "Nokogiri::XML::EntityDecl"), node);
        case Node.ENTITY_REFERENCE_NODE:
            XmlEntityReference xmlEntityRef = (XmlEntityReference) NokogiriService.XML_ENTITY_REFERENCE_ALLOCATOR.allocate(runtime, getNokogiriClass(runtime, "Nokogiri::XML::EntityReference"));
            xmlEntityRef.setNode(runtime, node);
            return xmlEntityRef;
        case Node.PROCESSING_INSTRUCTION_NODE:
            XmlProcessingInstruction xmlProcessingInstruction = (XmlProcessingInstruction) NokogiriService.XML_PROCESSING_INSTRUCTION_ALLOCATOR.allocate(runtime, getNokogiriClass(runtime, "Nokogiri::XML::ProcessingInstruction"));
            xmlProcessingInstruction.setNode(runtime, node);
            return xmlProcessingInstruction;
        case Node.CDATA_SECTION_NODE:
            XmlCdata xmlCdata = (XmlCdata) NokogiriService.XML_CDATA_ALLOCATOR.allocate(runtime, getNokogiriClass(runtime, "Nokogiri::XML::CDATA"));
            xmlCdata.setNode(runtime, node);
            return xmlCdata;
        case Node.DOCUMENT_NODE:
            XmlDocument xmlDocument = (XmlDocument) NokogiriService.XML_DOCUMENT_ALLOCATOR.allocate(runtime, getNokogiriClass(runtime, "Nokogiri::XML::Document"));
            xmlDocument.setDocumentNode(runtime, (Document) node);
            return xmlDocument;
        case Node.DOCUMENT_TYPE_NODE:
            XmlDtd xmlDtd = (XmlDtd) NokogiriService.XML_DTD_ALLOCATOR.allocate(runtime, getNokogiriClass(runtime, "Nokogiri::XML::DTD"));
            xmlDtd.setNode(runtime, node);
            return xmlDtd;
        default:
            XmlNode xmlNode = (XmlNode) NokogiriService.XML_NODE_ALLOCATOR.allocate(runtime, getNokogiriClass(runtime, "Nokogiri::XML::Node"));
            xmlNode.setNode(runtime, node);
            return xmlNode;
    }
}
Also used : XmlDtd(nokogiri.XmlDtd) XmlNode(nokogiri.XmlNode) XmlEntityReference(nokogiri.XmlEntityReference) XmlProcessingInstruction(nokogiri.XmlProcessingInstruction) XmlComment(nokogiri.XmlComment) XmlElement(nokogiri.XmlElement) XmlText(nokogiri.XmlText) XmlDocument(nokogiri.XmlDocument) XmlAttr(nokogiri.XmlAttr) XmlCdata(nokogiri.XmlCdata)

Aggregations

XmlAttr (nokogiri.XmlAttr)2 XmlCdata (nokogiri.XmlCdata)2 XmlComment (nokogiri.XmlComment)2 XmlDocument (nokogiri.XmlDocument)2 XmlDtd (nokogiri.XmlDtd)2 XmlElement (nokogiri.XmlElement)2 XmlEntityReference (nokogiri.XmlEntityReference)2 XmlNode (nokogiri.XmlNode)2 XmlProcessingInstruction (nokogiri.XmlProcessingInstruction)2 XmlText (nokogiri.XmlText)2