在不修改值的情况下搜索和替换XML节点,并在HTML输出中转换输入文件

时间:2013-05-02 08:56:29

标签: c# xml html5 xslt

我在这里阅读了一些答案并尝试将它们应用于案例......但仍然在苦苦挣扎。

我的两个目标,在标题中重新开始:

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有效文档中进行转换。

请事先提供帮助

0 个答案:

没有答案