小编mei*_*eir的帖子

Unicode到Windows-1251使用XML(HTML)转换 - 转换

我有XML文件,需要通过应用XSL Transformation来生成带有Windows-1251编码的HTML文件.问题是XSL -file的Unicode字符不会像"ғ"那样转换为HTML Unicode转义序列.在XSL Transformation期间,只有"?" 标志是写而不是他们.如何让XslCompiledTransform.Transform方法执行此转换?或者是有任何写HTML字符串到Windows-1251的HTML文件,将HTML Unicode转义序列,这样我就可以执行XSL转换为字符串,然后用这种方法来写与Windows-1251编码,并与HTML文件的方法- 所有unicode字符的转义(比如Convert(" ғ ")将返回" ғ ")?

XmlReader xmlReader = XmlReader.Create(new StringReader("<Data><Name>The Wizard of Wishaw</Name></data>"));

XslCompiledTransform xslTrans = new XslCompiledTransform();
xslTrans.Load("sheet.xsl");

using (XmlTextWriter xmlWriter = new XmlTextWriter("result.html", Encoding.GetEncoding("Windows-1251")))
{
    xslTrans.Transform(xmlReader, xmlWriter); // it writes Windows-1251 HTML-file but does not escape unicode characters, just writes "?" signs
}
Run Code Online (Sandbox Code Playgroud)

谢谢大家的帮助!

UPDATE

我在XSL文件中的输出配置标记:

<xsl:output method="xml" indent="yes" omit-xml-declaration="yes" />
Run Code Online (Sandbox Code Playgroud)

我现在甚至都不希望XSL满足我的需求.但我想知道我没有任何方法来检查字符是否可以被指定的编码接受.就像是

Char.IsEncodable('?', Encoding.GetEncoding('Windows-1251'))
Run Code Online (Sandbox Code Playgroud)

我目前的解决方案是将所有大于127(c> 127)的字符转换为&#dddd; 转义字符串,但我的主管对解决方案不满意,因为生成的HTML文件的来源不可读.

html c# xml xslt encoding

8
推荐指数
1
解决办法
2812
查看次数

C#:从布尔继承吗?

(怎么样)我可以继承布尔值吗?(或者使用'='运算符使我的类与布尔相当)

class MyClass : Boolean
{
    public MyClass()
    {
        this = true;
    }
}
class Program
{
    public Program()
    {
        MyClass myClass = new MyClass();
        if(myClass == true)
            //do something...
        else
            //do something else...
    }
}
Run Code Online (Sandbox Code Playgroud)

c# inheritance boolean operator-overloading

4
推荐指数
2
解决办法
3287
查看次数

标签 统计

c# ×2

boolean ×1

encoding ×1

html ×1

inheritance ×1

operator-overloading ×1

xml ×1

xslt ×1