簡體   English   中英

使用xslt時,名稱不能以'='字符十六進制值0x3d開頭

[英]Name cannot begin with the '=' character hexadecimal value 0x3d when use xslt

我有一些HTML。 我嘗試使用庫進行清理: http : //sourceforge.net/projects/tidynet/

這是我的代碼:

//clean up html
            Tidy tidy = new Tidy();

            tidy.Options.DocType = DocType.Omit;
            tidy.Options.DropFontTags = true;
            tidy.Options.LogicalEmphasis = true;
            tidy.Options.Xhtml = true;
            tidy.Options.XmlOut = true;
            tidy.Options.MakeClean = true;
            tidy.Options.TidyMark = false;
            tidy.Options.CharEncoding = CharEncoding.UTF8;


            /* Declare the parameters that is needed */
            TidyMessageCollection tmc = new TidyMessageCollection();
            MemoryStream input = new MemoryStream();
            MemoryStream output = new MemoryStream();

            byte[] byteArray = Encoding.UTF8.GetBytes(report);
            input.Write(byteArray, 0, byteArray.Length);
            input.Position = 0;
            tidy.Parse(input, output, tmc);

            string cleanHtml = Encoding.UTF8.GetString(output.ToArray());

然后我嘗試使用xslt:

try
            {
                StringBuilder res = new StringBuilder();
                XslCompiledTransform xslt = new XslCompiledTransform();
                xslt.Load(XmlReader.Create(new StringReader(stylesheet.Content)));
                xslt.Transform(StringExtensions.ToXmlReader(cleanHtml), null, new StringWriter(res));
                var resultReport = res.ToString();
            }
            catch (Exception e)
            {

            }

我得到一個例外:

名稱中不能包含“ =”字符(十六進制值0x3D)

更新如何自動從'='中清除名稱?

HTML不是XML(除非是XHTML)。 幾乎肯定會嘗試將XSLT應用於通用HTML文檔會給您帶來問題。 您將必須找到一種不同的方式來進行所需的轉換。

如果您想以編程方式處理HTML,則建議使用HTML Agility Pack

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM