0

我在这里阅读了一些答案,并试图将它们应用于案例……但仍在挣扎。

我的两个目标,在标题中恢复:

1) 我必须阅读大型 XML 文档(最多 40 Megs),转换其中几乎所有的自定义标签,但保留这些标签的内容而不做任何修改。

因此,例如,我的文档是这样的:

<?xml version="1.0" encoding="utf-8"?>
<Root>
    <Foo>
        <PARA>
            Text Value 1
        </PARA>
        <PARA>
            Text Value 2
        </PARA>
        <PARA>
            Text Value 3
        </PARA>
    </Foo>
    <SubNode>
        <SubExample>
            <PARA>
                Text Value 4
            </PARA>
            <PARA>
                Text Value 5
            </PARA>
            <PARA>
                Text Value 6
            </PARA>
        </SubExample>
    </SubNode>
</Root>

结果文件必须是:

<?xml version="1.0" encoding="utf-8"?>
<Root>
    <Foo>
        <p>
            Text Value 1
        </p>
        <p>
            Text Value 2
        </p>
        <p>
            Text Value 3`enter code here`
        </p>
    </Foo>
    <SubNode>
        <SubExample>
            <p>
                Text Value 4
            </p>
            <p>
                Text Value 5
            </p>
            <p>
                Text Value 6
            </p>
        </SubExample>
    </SubNode>
</Root>

我的 C# 控制台应用程序调用 XSLT 文件:

XslTransform myXslTransform;
        myXslTransform = new XslTransform();
        myXslTransform.Load(@"C:\Users\User\Desktop\TransformXml2Html.xslt");

那是:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
  <xsl:output omit-xml-declaration="yes" indent="yes" doctype-system="about:legacy-compat"/> 
  </xsl:param>-->
  <xsl:template match="@* | node()">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
  </xsl:template>
  <xsl:template match="PARA">
    <p></p>
  </xsl:template>
</xsl:stylesheet>

但是这样做<p>标签的内容是空的......

2) 输入 XML 文件必须转换为有效的 HTML5 有效文档。

提前谢谢您的帮助

4

0 回答 0