Beispiel #1
0
        public void Convert(HtmlNode node, XmlWriter writer)
        {
            var classOfSpan = node.GetAttributeValue("class", string.Empty);
            var styleOfSpan = node.GetAttributeValue("style", string.Empty);

            if (classOfSpan.Equals(ItalicClassName, StringComparison.CurrentCultureIgnoreCase) ||
                styleOfSpan.Equals(ItalicClassName, StringComparison.CurrentCultureIgnoreCase))
            {
                using (writer.StartElement(ItalicClassName))
                {
                    var innerTextNode = new InnerTextNode();
                    innerTextNode.Convert(node, writer);
                }
            }
            else if (classOfSpan.Equals(BoldClassName, StringComparison.CurrentCultureIgnoreCase) ||
                     styleOfSpan.Equals(BoldClassName, StringComparison.CurrentCultureIgnoreCase))
            {
                using (writer.StartElement(BoldClassName))
                {
                    var innerTextNode = new InnerTextNode();
                    innerTextNode.Convert(node, writer);
                }
            }
            else if (classOfSpan.Equals(UnderlineClassName, StringComparison.CurrentCultureIgnoreCase) ||
                     styleOfSpan.Equals(UnderlineClassName, StringComparison.CurrentCultureIgnoreCase))
            {
                using (writer.StartElement(UnderlineClassName))
                {
                    var innerTextNode = new InnerTextNode();
                    innerTextNode.Convert(node, writer);
                }
            }
        }
Beispiel #2
0
        public void Convert(HtmlAgilityPack.HtmlNode node, System.Xml.XmlWriter writer)
        {
            var divClass = node.GetAttributeValue("class", null);

            if (!string.IsNullOrEmpty(divClass))
            {
                if (divClass.Equals("sidebox", StringComparison.CurrentCultureIgnoreCase))
                {
                    var sidebox = new SideboxNode();
                    sidebox.Convert(node, writer);
                }
                else if (divClass.Equals("root", StringComparison.CurrentCultureIgnoreCase))
                {
                    var innerContent = new InnerTextNode();
                    innerContent.Convert(node, writer);
                }
                else if (divClass.Equals("article-interview__question", StringComparison.CurrentCultureIgnoreCase))
                {
                    var interviewQuestion = new InterviewQuestionNode();
                    interviewQuestion.Convert(node, writer);
                }
                else if (divClass.Equals("article-interview__answer", StringComparison.CurrentCultureIgnoreCase))
                {
                    var interviewAnswer = new InterviewAnswerNode();
                    interviewAnswer.Convert(node, writer);
                }
                else if (divClass.Equals("quick-facts", StringComparison.CurrentCultureIgnoreCase))
                {
                    var sidebox = new SideboxNode();
                    sidebox.Convert(node, writer);
                }
            }
        }
Beispiel #3
0
        public void Convert(HtmlNode node, XmlWriter writer)
        {
            using (writer.StartElement(NlmGlobals.Output.TableCellStyledContentNodeName))
            {
                writer.WriteAttributeString(NlmGlobals.Output.TableCellStyledContentStyleAttributeName, "2.2 Story Sub-head");

                var innerContent = new InnerTextNode();
                innerContent.Convert(node, writer);
            }
        }
Beispiel #4
0
        public void Convert(HtmlNode node, XmlWriter writer)
        {
            using (writer.StartElement("p"))
            {
                writer.WriteAttributeString("content-type", "2.5 Quick facts Text");

                var innerContent = new InnerTextNode();
                innerContent.Convert(node, writer);
            }
        }
Beispiel #5
0
        public void Convert(HtmlNode node, XmlWriter writer)
        {
            var classOfNode = node.GetAttributeValue("class", string.Empty);
            var nodeLink    = node.GetAttributeValue("href", string.Empty);

            string internalUrl;

            if (Helpers.TryResolveInternalLink(nodeLink, out internalUrl))
            {
                nodeLink = internalUrl;
            }

            AssetLinkBase link = null;

            if (classOfNode.Equals("enlarge", StringComparison.CurrentCultureIgnoreCase))
            {
                var content = new InnerTextNode();
                content.Convert(node, writer);
                return;
            }

            if (SupportingDocumentLink.IsSupportedExtension(nodeLink))
            {
                link = new SupportingDocumentLink();
            }
            else if (!string.IsNullOrEmpty(nodeLink))
            {
                link = new ExternalLink();
            }

            if (link != null)
            {
                using (var ms = new MemoryStream())
                {
                    using (var sw = new StreamWriter(ms))
                    {
                        link.Write(sw, nodeLink, node.InnerText);
                    }

                    var bytes = ms.ToArray();
                    var value = Encoding.UTF8.GetString(bytes);
                    writer.WriteString(value);
                }
            }
            else
            {
                // render the inside of an element.
                var content = new InnerTextNode();
                content.Convert(node, writer);
            }
        }
Beispiel #6
0
        public void Convert(HtmlNode node, XmlWriter writer)
        {
            using (writer.StartElement("p"))
            {
                writer.WriteAttributeString("content-type", "InterviewAnswer");

                //removes paragraph tags from interview answers because they break NLM validation
                if (string.IsNullOrEmpty(node.InnerHtml) == false)
                {
                    node.InnerHtml = node.InnerHtml.Replace("<p>", string.Empty).Replace("</p>", string.Empty);
                }

                var innerContent = new InnerTextNode();
                innerContent.Convert(node, writer);
            }
        }
Beispiel #7
0
        private void Convert(HtmlNode node, XmlWriter writer, string labelText)
        {
            using (writer.StartElement(NlmGlobals.Output.ListItemNodeName))
            {
                using (writer.StartElement(NlmGlobals.Output.LabelNodeName))
                {
                    writer.WriteString(labelText);
                }

                using (writer.StartElement(NlmGlobals.Output.ParagraphNodeName))
                {
                    writer.WriteAttributeString(NlmGlobals.Output.ParagraphContentTypeAttributeName, ContentType);

                    var innerContent = new InnerTextNode();
                    innerContent.Convert(node, writer);
                }
            }
        }
Beispiel #8
0
        public void Convert(HtmlNode node, XmlWriter writer)
        {
            string nodeName;
            string r       = @"\[(\w)#(\d*):(.*)\]";
            var    matches = Regex.Matches(node.InnerText, r);

            if (matches.Count > 0)
            {
                var innerText = new InnerTextNode();
                innerText.Convert(node, writer);
            }
            else if (NodeMapping.TryGetValue(node.Name, out nodeName))
            {
                using (writer.StartElement(nodeName))
                {
                    var innerText = new InnerTextNode();
                    innerText.Convert(node, writer);
                }
            }
        }
Beispiel #9
0
        public void Convert(HtmlAgilityPack.HtmlNode node, System.Xml.XmlWriter writer)
        {
            var classOfParagraph = node.GetAttributeValue("class", null);

            if (string.IsNullOrEmpty(classOfParagraph))
            {
                if (!string.IsNullOrEmpty(node.InnerText.Trim()))
                {
                    using (writer.StartElement("p"))
                    {
                        writer.WriteAttributeString("content-type", "2.2 Story Text");

                        var innerContent = new InnerTextNode();
                        innerContent.Convert(node, writer);
                    }
                }
            }
            else if (classOfParagraph.Equals("article-paragraph", StringComparison.CurrentCultureIgnoreCase))
            {
                using (writer.StartElement("p"))
                {
                    writer.WriteAttributeString("content-type", "2.2 Story Text");

                    var innerContent = new InnerTextNode();
                    innerContent.Convert(node, writer);
                }
            }
            else if (classOfParagraph.Equals("nomargin", StringComparison.CurrentCultureIgnoreCase))
            {
                using (writer.StartElement("p"))
                {
                    writer.WriteAttributeString("content-type", "2.25 Story Text - No Spacing");

                    var innerContent = new InnerTextNode();
                    innerContent.Convert(node, writer);
                }
            }
            else if (classOfParagraph.Equals("exhibitnumber", StringComparison.CurrentCultureIgnoreCase))
            {
                // exhibit numbers are handled by the image/table.
                return;
            }
            else if (classOfParagraph.Equals("exhibittitle", StringComparison.CurrentCultureIgnoreCase))
            {
                // exhibit titles are handled by the image/table.
                return;
            }
            else if (classOfParagraph.Equals("source", StringComparison.CurrentCultureIgnoreCase))
            {
                // sources are handled by the image/table.
                return;
            }
            else if (classOfParagraph.Equals("question", StringComparison.CurrentCultureIgnoreCase))
            {
                var interviewQuestion = new InterviewQuestionNode();
                interviewQuestion.Convert(node, writer);
            }
            else if (classOfParagraph.Equals("answer", StringComparison.CurrentCultureIgnoreCase))
            {
                var interviewAnswer = new InterviewAnswerNode();
                interviewAnswer.Convert(node, writer);
            }
            else if (classOfParagraph.Equals("CompanyName", StringComparison.CurrentCultureIgnoreCase))
            {
                var companyName = new CompanyNameNode();
                companyName.Convert(node, writer);
            }
        }