当前位置: 首页>>代码示例>>C#>>正文


C# CQ.Append方法代码示例

本文整理汇总了C#中CsQuery.CQ.Append方法的典型用法代码示例。如果您正苦于以下问题:C# CQ.Append方法的具体用法?C# CQ.Append怎么用?C# CQ.Append使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CsQuery.CQ的用法示例。


在下文中一共展示了CQ.Append方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: PrepareHtml


//.........这里部分代码省略.........

                var src = img.Attr("src").Replace("/thumb", "");
                src = Regex.Replace(src, @"[.](jpg|png|gif)\/.+$", @".$1", RegexOptions.IgnoreCase);

                var image = new Image(src, new Uri(Wiki)) {Sashie = true};

                CQ node = a.Closest(".thumb").Add(a).First();

                if (_images.Count == 0 && EntryPicture)
                {
                    // We can view it as a full-fledged image since we don't need to worry about text-flow
                    image.Sashie = false;
                    dom.Before(image.Html);
                }
                else
                {
                    node.Before(image.Html);
                    //node.After("<span class=\"image-stopper\"></span>");
                }

                node.Remove();

                _images.Add(image);
            }

            // Catch references
            foreach (IDomElement supNode in dom.Find("sup.reference"))
            {
                var sup = new CQ(supNode);
                CQ footnote = "<span class=\"fn\"></span>";
                CQ oldFootnote = dom.Find("#" + sup.Attr("id").Replace("_ref-", "_note-"));

                footnote.Html(oldFootnote.Find(".reference-text").Html());

                oldFootnote.Remove();
                sup.Before(footnote).Remove();
            }
            // Remove possible reference title
            dom.Find(".references").Prev(":header").Remove();

            // Remove edit links
            dom.Find(".editsection, #toc").Remove();

            // Make smart quotes
            dom.Find("p:contains('\"'), p:contains(\"'\"), li:contains('\"'), li:contains(\"'\")").Each((el) =>
            {
                CQ p = new CQ(el);
                string pHtml = p.Html();

                // Replace quotes
                if (Regex.Matches(pHtml, "&quot;").Count % 2 == 0)
                {

                    pHtml = Regex.Replace(pHtml, "&quot;(.+?)&quot;", "“$1”");
                }
                else
                {
                    Console.WriteLine("NOTICE: possible quotes problem ({0})", pHtml.Trim());
                }

                // Replace single quotes (\b doesn't work)
                pHtml = Regex.Replace(pHtml, "(?<!\\w)'(.+?)'(?!\\w)", "‘$1’");
                // Replace apostrophes
                pHtml = Regex.Replace(pHtml, "'", "’");

                p.Html(pHtml);
            });

            // Parse Ruby
            dom.Find("span > span > span").Each(el =>
            {
                var rubySpan = new CQ(el);
                if(rubySpan.Css("position") == "relative" && rubySpan.Css("left") == "-50%") {
                    var textSpan = rubySpan.Parent().Siblings("span");
                    var containerSpan = textSpan.Parent();
                    if (textSpan.Length == 1 && containerSpan.Css("white-space") == "nowrap")
                    {
                        // Okay, this is ruby.
                        var ruby = new CQ("<ruby>");
                        ruby.Html(textSpan.Html());
                        ruby.Append(new CQ("<rp>(</rp>"));
                        ruby.Append(new CQ("<rt>").Html(rubySpan.Html()));
                        ruby.Append(new CQ("<rp>)</rp>"));

                        containerSpan.ReplaceWith(
                            ruby
                        );

                    }
                }
            });

            // Hakomari specific
            foreach (IDomElement star in dom.Find("p:contains(✵)"))
            {
                star.InnerHTML = "<img src=\"" + (new Uri( Helper.GetAssetsPath() + "blackstar.jpg" )) + "\">";
            }

            return dom.Render();
        }
开发者ID:EusthEnoptEron,项目名称:BakaPrince,代码行数:101,代码来源:Page.cs

示例2: Contents

        public void Contents()
        {
           
            Assert.AreEqual(jQuery("#ap").Contents().Length, 9, "Check element contents" );
            Assert.IsTrue( jQuery("#iframe").Length>0, "Check existence of IFrame document" );

            jQuery("#loadediframe").Append(@"<html>
              <head>
                <title>iframe</title>
              </head>
              <body>
                <div><span>span text</span></div>
              </body>
            </html>");
            
            var ibody = jQuery("#loadediframe").Contents().Find("body");
            Assert.IsTrue( ibody.Length>0, "Check existance of IFrame body" );
            var csq = new CQ("span", ibody);
            Assert.AreEqual(csq.Text(), "span text", "Find span in IFrame and check its text" );

            jQuery(ibody).Append("<div>init text</div>");
            csq = new CQ("div", ibody);
            Assert.AreEqual(csq.Length, 2, "Check the original div and the new div are in IFrame" );
            csq = new CQ("div:last", ibody);
            Assert.AreEqual(csq.Text(), "init text", "Add text to div in IFrame" );

            csq = new CQ("div:last", ibody);
            csq.Text("div text");
            Assert.AreEqual(new CQ("div:last", ibody).Text(), "div text", "Add text to div in IFrame");

            csq = new CQ("div:last", ibody).Remove();
            Assert.AreEqual(jQuery("div",ibody).Length, 1, "Delete the div and check only one div left in IFrame" );

            Assert.AreEqual(jQuery("div",ibody).Text(), "span text", "Make sure the correct div is still left after deletion in IFrame" );

            csq = new CQ("<table/>", ibody);
            csq.Append("<tr><td>cell</td></tr>").AppendTo(ibody);
            csq = new CQ("table", ibody);
            csq.Remove();
            csq = new CQ("div", ibody);
            Assert.AreEqual(csq.Length, 1, "Check for JS error on add and delete of a table in IFrame" );

            // using contents will get comments regular, text, and comment nodes
            var c = jQuery("#nonnodes").Contents().Contents();
            Assert.AreEqual(c.Length, 1, "Check node,textnode,comment contents is just one" );
            Assert.AreEqual(c[0].NodeValue, "hi", "Check node,textnode,comment contents is just the one from span" );
        }
开发者ID:kaleb,项目名称:CsQuery,代码行数:47,代码来源:Traversing.cs


注:本文中的CsQuery.CQ.Append方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。