コード例 #1
0
ファイル: XmlDeclaration.cs プロジェクト: fengweijp/NSoup
 public override void OuterHtmlHead(StringBuilder accum, int depth, OutputSettings output)
 {
     accum
         .Append("<")
         .Append(_isProcessingInstruction ? "!" : "?")
         .Append(GetWholeDeclaration())
         .Append(">");
 }
コード例 #2
0
ファイル: Comment.cs プロジェクト: fengweijp/NSoup
 public override void OuterHtmlHead(StringBuilder accum, int depth, OutputSettings output)
 {
     if (output.PrettyPrint())
     {
         Indent(accum, depth, output);
     }
     
     accum
         .Append("<!--")
         .Append(GetData())
         .Append("-->");
 }
コード例 #3
0
ファイル: DocumentType.cs プロジェクト: fengweijp/NSoup
        public override void OuterHtmlHead(StringBuilder accum, int depth, OutputSettings output)
        {
            accum.Append("<!DOCTYPE ").Append(Attr("name"));
            
            if (!StringUtil.IsBlank(Attr("publicId")))
            {
                accum.Append(" PUBLIC \"").Append(Attr("publicId")).Append("\"");
            }
            
            if (!StringUtil.IsBlank(Attr("systemId")))
            {
                accum.Append(" \"").Append(Attr("systemId")).Append("\"");
            }

            accum.Append('>');
        }
コード例 #4
0
 public static string Escape(string s, OutputSettings output)
 {
     return(Escape(s, output.Encoding, output.EscapeMode));
 }
コード例 #5
0
 public override void OuterHtmlTail(StringBuilder accum, int depth, OutputSettings output)
 {
 }
コード例 #6
0
ファイル: Node.cs プロジェクト: milenstack/NSoup
 public OuterHtmlVisitor(StringBuilder accum, OutputSettings output)
 {
     this._accum  = accum;
     this._output = output;
 }
コード例 #7
0
ファイル: Node.cs プロジェクト: milenstack/NSoup
 protected void Indent(StringBuilder accum, int depth, OutputSettings output)
 {
     accum.Append("\n").Append(StringUtil.Padding(depth * output.IndentAmount()));
 }
コード例 #8
0
ファイル: Node.cs プロジェクト: milenstack/NSoup
 public abstract void OuterHtmlTail(StringBuilder accum, int depth, OutputSettings output);
コード例 #9
0
ファイル: DataNode.cs プロジェクト: fengweijp/NSoup
 public override void OuterHtmlHead(StringBuilder accum, int depth, OutputSettings output)
 {
     accum.Append(GetWholeData()); // data is not escaped in return from data nodes, so " in script, style is plain
 }
コード例 #10
0
ファイル: Node.cs プロジェクト: fengweijp/NSoup
 public abstract void OuterHtmlTail(StringBuilder accum, int depth, OutputSettings output);
コード例 #11
0
 public override void OuterHtmlHead(StringBuilder accum, int depth, OutputSettings output)
 {
     accum.Append(GetWholeData()); // data is not escaped in return from data nodes, so " in script, style is plain
 }
コード例 #12
0
ファイル: TextNode.cs プロジェクト: fengweijp/NSoup
        public override void OuterHtmlHead(StringBuilder accum, int depth, OutputSettings output)
        {
            string html = Entities.Escape(GetWholeText(), output);
            if (output.PrettyPrint() && ParentNode is Element && !((Element)ParentNode).PreserveWhitespace)
            {
                html = NormaliseWhitespace(html);
            }

            if (output.PrettyPrint() && SiblingIndex == 0 && ParentNode is Element && ((Element)ParentNode).Tag.FormatAsBlock && !IsBlank)
            {
                Indent(accum, depth, output);
            }
            accum.Append(html);
        }
コード例 #13
0
ファイル: Entities.cs プロジェクト: fengweijp/NSoup
 public static string Escape(string s, OutputSettings output)
 {
     return Escape(s, output.Encoding, output.EscapeMode);
 }
コード例 #14
0
ファイル: Document.cs プロジェクト: rfcclub/NSoup
        public object Clone()
        {
            OutputSettings clone = new OutputSettings();

            clone.SetEncoding(_encoding.WebName); // new charset and charset encoder
            clone.EscapeMode = _escapeMode;
            clone.PrettyPrint(_prettyPrint);
            clone.IndentAmount(_indentAmount);

            return clone;
        }
コード例 #15
0
ファイル: Document.cs プロジェクト: rfcclub/NSoup
        /// <summary>
        /// Sets the document's output settings.
        /// </summary>
        /// <param name="outputSettings">New output settings</param>
        /// <returns>This document, for chaining</returns>
        public Document OutputSettings(OutputSettings outputSettings)
        {
            if (outputSettings == null)
            {
                throw new ArgumentNullException("outputSettings");
            }

            this._outputSettings = outputSettings;
            return this;
        }
コード例 #16
0
ファイル: NSoup.cs プロジェクト: fengweijp/NSoup
 /// <summary>
 /// Get safe HTML from untrusted input HTML, by parsing input HTML and filtering it through a white-list of
 /// permitted tags and attributes.
 /// </summary>
 /// <param name="bodyHtml">Input untrusted HTML (body fragment)</param>
 /// <param name="baseUri">URL to resolve relative URLs against</param>
 /// <param name="whitelist">White-list of permitted HTML elements</param>
 /// <param name="outputSettings">Document output settings; use to control pretty-printing and entity escape modes</param>
 /// <returns>Safe HTML (body fragment)</returns>
 /// <see cref="Cleaner.Clean(Document)"/>
 public static string Clean(string bodyHtml, string baseUri, Whitelist whitelist, OutputSettings outputSettings)
 {
     Document dirty = ParseBodyFragment(bodyHtml, baseUri);
     Cleaner cleaner = new Cleaner(whitelist);
     Document clean = cleaner.Clean(dirty);
     clean.OutputSettings(outputSettings);
     return clean.Body.Html();
 }
コード例 #17
0
ファイル: Node.cs プロジェクト: fengweijp/NSoup
 protected void Indent(StringBuilder accum, int depth, OutputSettings output)
 {
     accum.Append("\n").Append(StringUtil.Padding(depth * output.IndentAmount()));
 }
コード例 #18
0
ファイル: Node.cs プロジェクト: fengweijp/NSoup
 public OuterHtmlVisitor(StringBuilder accum, OutputSettings output)
 {
     this._accum = accum;
     this._output = output;
 }
コード例 #19
0
ファイル: DataNode.cs プロジェクト: fengweijp/NSoup
 public override void OuterHtmlTail(StringBuilder accum, int depth, OutputSettings output) { }
コード例 #20
0
ファイル: CleanerTest.cs プロジェクト: rfcclub/NSoup
        public void supplyOutputSettings()
        {
            // test that one can override the default document output settings
            OutputSettings os = new OutputSettings();
            os.PrettyPrint(false);
            os.EscapeMode = Entities.EscapeMode.Extended;

            string html = "<div><p>&bernou;</p></div>";
            string customOut = NSoupClient.Clean(html, "http://foo.com/", Whitelist.Relaxed, os);
            string defaultOut = NSoupClient.Clean(html, "http://foo.com/", Whitelist.Relaxed);
            Assert.AreNotSame(defaultOut, customOut);

            Assert.AreEqual("<div><p>&bernou;</p></div>", customOut);
            Assert.AreEqual("<div>\n" +
                " <p>ג„¬</p>\n" +
                "</div>", defaultOut);

            os.Encoding = Encoding.ASCII;
            os.EscapeMode = Entities.EscapeMode.Base;
            String customOut2 = NSoupClient.Clean(html, "http://foo.com/", Whitelist.Relaxed, os);
            Assert.AreEqual("<div><p>&#8492;</p></div>", customOut2);
        }