如何在不依赖Microsoft域的情况下使此脚本持续很长时间?

How to make this script last long without relying on Microsoft domain?

提问人:user10268539 提问时间:12/27/2021 最后编辑:vonPryzuser10268539 更新时间:12/27/2021 访问量:38

问:

我创建了一个简单的 PowerShell 脚本,通过根据我在这里找到的知识从 2016 版本恢复到 2008 版本来修复 RDLC 报告定义。但是,XML 命名空间指向 http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition,恐怕有一天它会由于某些原因而不可用。请建议如何在不依赖外部/第三方资产的情况下使此脚本工作。例如,我需要在我的 Web 服务器上托管哪些文件。谢谢。

我点击了链接,但它不是JSON或XML格式。只是一个网页,所以我在那里迷路了。

param (
    [Parameter(Mandatory=$true)][string]$rptName
)


$file = (Get-Content $rptName)
$rptNameTarget = "Fixed_" + $rptName

# Take out unwanted tags
$file = $file -replace '<ReportSections>',""
$file = $file -replace '<ReportSection>',""
$file = $file -replace '</ReportSection>',""
$file = $file -replace '</ReportSections>',""

# Parse the XML doc
$xml = [xml]$file;

# Set the XML namespace
$xml.Report.xmlns = "http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition";

# Remove ReportParametersLayout node
if ($xml.Report.ReportParametersLayout -ne $null) {
    Write-Host "Removing ReportParametersLayout tags.."
    $xml.Report.RemoveChild($xml.Report.ReportParametersLayout);
}

# Save the file to new filename
$xml.save($rptNameTarget)
XML PowerShell 动态 RDLC 生成

评论

1赞 vonPryz 12/27/2021
这不是 XML 命名空间的工作方式。即使有 URI,也只是为了使命名空间唯一。解析 XML 文档不需要与“托管”命名空间的服务器建立网络连接。
0赞 William Walseth 12/27/2021
vonPryz 是对的。花点时间了解命名空间和 XSL,你就会解决它。
0赞 user10268539 12/28/2021
我尝试运行这个脚本和 .RDLC报告在没有Internet连接的本地 ASP.NET 服务器上,它工作正常。刚刚意识到这个事实。感谢您的评论。

答: 暂无答案