Beispiel #1
0
        /// <summary>
        /// Wraps JSoup nodes into pdfHTML
        /// <see cref="iText.StyledXmlParser.Node.INode"/>
        /// classes.
        /// </summary>
        /// <param name="jsoupNode">the JSoup node instance</param>
        /// <returns>
        /// the
        /// <see cref="iText.StyledXmlParser.Node.INode"/>
        /// instance
        /// </returns>
        private INode WrapJsoupHierarchy(iText.StyledXmlParser.Jsoup.Nodes.Node jsoupNode)
        {
            INode resultNode = null;

            if (jsoupNode is Document)
            {
                resultNode = new JsoupDocumentNode((Document)jsoupNode);
            }
            else
            {
                if (jsoupNode is TextNode)
                {
                    resultNode = new JsoupTextNode((TextNode)jsoupNode);
                }
                else
                {
                    if (jsoupNode is iText.StyledXmlParser.Jsoup.Nodes.Element)
                    {
                        resultNode = new JsoupElementNode((iText.StyledXmlParser.Jsoup.Nodes.Element)jsoupNode);
                    }
                    else
                    {
                        if (jsoupNode is DataNode)
                        {
                            resultNode = new JsoupDataNode((DataNode)jsoupNode);
                        }
                        else
                        {
                            if (jsoupNode is DocumentType)
                            {
                                resultNode = new JsoupDocumentTypeNode((DocumentType)jsoupNode);
                            }
                            else
                            {
                                if (jsoupNode is Comment || jsoupNode is XmlDeclaration)
                                {
                                }
                                else
                                {
                                    // Ignore. We should do this to avoid redundant log message
                                    logger.Error(MessageFormatUtil.Format(iText.StyledXmlParser.LogMessageConstant.ERROR_PARSING_COULD_NOT_MAP_NODE
                                                                          , jsoupNode.GetType()));
                                }
                            }
                        }
                    }
                }
            }
            foreach (iText.StyledXmlParser.Jsoup.Nodes.Node node in jsoupNode.ChildNodes())
            {
                INode childNode = WrapJsoupHierarchy(node);
                if (childNode != null)
                {
                    resultNode.AddChild(childNode);
                }
            }
            return(resultNode);
        }
        /// <summary>
        /// Wraps JSoup nodes into pdfHTML
        /// <see cref="iText.StyledXmlParser.Node.INode"/>
        /// classes.
        /// </summary>
        /// <param name="jsoupNode">the JSoup node instance</param>
        /// <returns>
        /// the
        /// <see cref="iText.StyledXmlParser.Node.INode"/>
        /// instance
        /// </returns>
        private INode WrapJsoupHierarchy(iText.StyledXmlParser.Jsoup.Nodes.Node jsoupNode)
        {
            INode resultNode = null;

            if (jsoupNode is Document)
            {
                resultNode = new JsoupDocumentNode((Document)jsoupNode);
            }
            else
            {
                if (jsoupNode is TextNode)
                {
                    resultNode = new JsoupTextNode((TextNode)jsoupNode);
                }
                else
                {
                    if (jsoupNode is iText.StyledXmlParser.Jsoup.Nodes.Element)
                    {
                        resultNode = new JsoupElementNode((iText.StyledXmlParser.Jsoup.Nodes.Element)jsoupNode);
                    }
                    else
                    {
                        if (jsoupNode is DataNode)
                        {
                            resultNode = new JsoupDataNode((DataNode)jsoupNode);
                        }
                        else
                        {
                            if (jsoupNode is DocumentType)
                            {
                                resultNode = new JsoupDocumentTypeNode((DocumentType)jsoupNode);
                            }
                            else
                            {
                                if (jsoupNode is Comment)
                                {
                                }
                                else
                                {
                                    logger.Error(MessageFormatUtil.Format("Could not map node type: {0}", jsoupNode.GetType()));
                                }
                            }
                        }
                    }
                }
            }
            foreach (iText.StyledXmlParser.Jsoup.Nodes.Node node in jsoupNode.ChildNodes())
            {
                INode childNode = WrapJsoupHierarchy(node);
                if (childNode != null)
                {
                    resultNode.AddChild(childNode);
                }
            }
            return(resultNode);
        }