PSCX 中有一个名为 Convert-XML 的命令行开关,它使用 XSL 将 XML 转换为 HTML。我一生都无法弄清楚让它工作的语法。
我知道我需要为 XML 输入、XSLT 样式表和 HTML 输出提供路径。
如何使用C:\style.xslt将C:\input.xml转换为C:\output.html?
PSCX 中有一个名为 Convert-XML 的命令行开关,它使用 XSL 将 XML 转换为 HTML。我一生都无法弄清楚让它工作的语法。
我知道我需要为 XML 输入、XSLT 样式表和 HTML 输出提供路径。
如何使用C:\style.xslt将C:\input.xml转换为C:\output.html?
在问题评论中来回了一下,但我确定这是正确的答案:
Convert-Xml -Path input.xml -XsltPath style.xslt -OutputPath output.html
但是,正如您所指出的,您使用的是 PSCX 2.1,它已经过时并且似乎不支持该-OutputFile
参数。您可以尝试使用Out-File
cmdlet 或重定向运算符将呈现的 HTML 文档输出到文件,如下所示:
# Using Out-File
Convert-Xml -Path input.xml -XsltPath style.xslt | Out-File output.html
# Using redirection operator (>)
Convert-Xml -Path input.xml -XsltPath style.xslt > output.html
请注意,两者都Out-File
将>
字节顺序标记 (BOM) 添加到您的文件中。如果这是不可取的,您可以这样做以在没有 BOM 的情况下写入文件:
# Save the converted HTML to a variable
$htmlDoc = Convert-Xml -Path input.xml -XsltPath style.xslt
# Create a new UTF8 encoding with no BOM
$UTF8EncodingNoBom = New-Object System.Text.UTF8Encoding( $False )
# Write to file using the no-BOM encoding
[System.IO.File]::WriteAllText( 'output.html', $htmlDoc, $UTF8EncodingNoBom )