标签: sgmlreader

C# - 是否有可能(以及如何)使用SgmlReader执行XSL转换

我需要使用XSLT转换HTML网页的内容 .因此我使用了SgmlReader并编写了下面显示的片段(我想,最后,它也是一个XmlReader ......)

XmlReader xslr = XmlReader.Create(new StringReader(
    "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
    "<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\">" +
    "<xsl:output method=\"xml\" encoding=\"UTF-8\" version=\"1.0\" />" +
    "<xsl:template match=\"/\">" +
    "<XXX xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"><xsl:value-of select=\"count(//br)\" /></XXX>" +
    "</xsl:template>" +
    "</xsl:stylesheet>"));

XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(xslr);

using (SgmlReader html = new SgmlReader())
{
    StringBuilder sb = new StringBuilder();
    using (TextWriter sw = new StringWriter(sb))
    using (XmlWriter xw = new XmlTextWriter(sw))
    {
        html.InputStream = new StringReader(Resources.html_orig);
        html.DocType = "HTML";

        try
        { …
Run Code Online (Sandbox Code Playgroud)

html c# xml xslt sgmlreader

6
推荐指数
1
解决办法
1352
查看次数

为什么XmlDocument.GetElementById总是返回null?

我有一些XML(有效的XHTML),如下所示:

<html>
    <head>
        <script type="text/javascript">
            <![CDATA[
                function change_header(){
                    document.getElementById("myHeader").innerHTML="Nice day!";
                }]]>
        </script>
    </head>
    <body>
        <h1 id="myHeader">Hello World!</h1>
        <button onclick="change_header()">Change text</button>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我正在尝试#myHeader使用节点,docment.GetElementById("myHeader")但它总是返回null.为什么?

它不会将id属性识别为没有DTD或其他东西 id属性?如果是这种情况,我怎样才能使用HTML DTD?

c# xmldocument sgmlreader

2
推荐指数
1
解决办法
4674
查看次数

标签 统计

c# ×2

sgmlreader ×2

html ×1

xml ×1

xmldocument ×1

xslt ×1