从 PowerShell 格式化 XML

2023-12-01

我有一个 PowerShell 脚本,它运行一个返回 XML 的存储过程。然后,我将 XML 导出到一个文件中,但当我打开该文件时,每行末尾都有 3 个点,并且该行不完整。这是使用out-file.

当我使用Export-Clixml从查询返回的 XML 被转储到名为<props>这不是我的标签之一。

我不确定从这里到哪里以原始格式保存 XML。

我正在使用的 PowerShell 脚本与此类似:

$Date = Get-Date -format "yyyyMMdd_HHmm" 
$File = "C:\Temp\MyFile"+$Date+".xml"

$Query = "exec dbo.usp_MyProc"

Invoke-Sqlcmd -Query $Query -database MyDatabase -ServerInstance MyServer | out-file $File -Encoding utf8 

假设从 SQL 命令返回的 XML 是格式良好的 XML,您还可以通过 .net 的格式推送 XML 字符串(本质上是 XML 的漂亮打印)。

function Format-XML {
  [CmdletBinding()]
  Param ([Parameter(ValueFromPipeline=$true,Mandatory=$true)][string]$xmlcontent)
  $xmldoc = New-Object -TypeName System.Xml.XmlDocument
  $xmldoc.LoadXml($xmlcontent)
  $sw = New-Object System.IO.StringWriter
  $writer = New-Object System.Xml.XmlTextwriter($sw)
  $writer.Formatting = [System.XML.Formatting]::Indented
  $xmldoc.WriteContentTo($writer)
  $sw.ToString()
}

$Date = Get-Date -format "yyyyMMdd_HHmm" 
$File = "C:\Temp\MyFile"+$Date+".xml"

$Query = "exec dbo.usp_MyProc"

Invoke-Sqlcmd -Query $Query -database MyDatabase -ServerInstance MyServer `
  | Format-XML `
  | Set-Content -Path $File -Force

Export-CliXml导出 PowerShell XML,包括类型信息,可以从磁盘加载以重新水化变量 - 因此有额外的信息。

Out-File具有由主机 PowerShell 环境设置的默认宽度。看Get-Help Out-File -Full.

没有 XML 格式的示例,存储 DataRow 结果并挑选 XML 列。

$Date = Get-Date -format "yyyyMMdd_HHmm" 
$File = "C:\Temp\MyFile"+$Date+".xml"

$Query = "exec dbo.usp_MyProc"

$resultRow = Invoke-Sqlcmd -Query $Query -database MyDatabase -ServerInstance MyServer


$resultRow['XMLColumn'] | Set-Content -Path $File -Force

显然,您需要使用存储过程中的列名称重命名 XMLColumn。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 PowerShell 格式化 XML 的相关文章

随机推荐

  • Fruchterman Reingold 的吸引力如何与 Boost Graph Library 配合使用

    我正在 Boost Graph Library 中学习 Fruchterman Reingold 算法 通过阅读文档 我知道该算法是根据图形布局计算所有节点的位置 但我的问题是我无法理解Boost Graph Library中吸引力的计算步
  • 套接字断开通知方法

    只是寻找一个可能的解决方案来识别客户端何时断开连接 我找到了这个 public bool IsConnected Socket s try return s Poll 1 SelectMode SelectRead s Available
  • Pandas 按唯一计数分组作为新列

    我想添加一个新列col在我的 pandas 数据框中 计算公式为 select count distinct ITEM as col from base data where STOCK gt 0 group by DEPT CLAS DA
  • 如何使用 watir-webdriver 禁用 Firefox 中的下载窗口?

    我不想处理 Firefox 或 IE 中的下载窗口 我想自动下载excel文件 没有任何下载窗口 我尝试为 Firefox 设置几个配置参数 但没有成功 在我的测试中 我尝试下载 Excel 文件 profile Selenium WebD
  • wxpython。需要帮助解决令人困惑的错误

    该代码适用于另一台计算机上的其他人 但似乎不适用于我 我正在使用 python 2 7 7 它对另外两个人来说效果很好 但它似乎不喜欢我或我的计算机 因为每当我运行它时 它都会给我一条错误消息 你们有什么感想 Traceback most
  • 3G 条码阅读器

    我是 iPhone 应用程序的新手 但最近我看到一个帖子 要求为 3G iPhone 提供条形码读取器 人们 包括我 提到过zxing它适用于 3GS 或更高版本 如果您想申请 3G 那么最好从 QuickMark 或 Red Laser
  • PHP在post请求中读取xml

    所以 我执行了两个步骤 a 在其中一个 php 文件中创建一些随机 xml 文件 b 解析第二个文件中的相同 xml 文件 关键点是 a 中的 php 文件将向 php 文件 b 发出仅 xml 作为请求的 post 请求 文件 b 必须使
  • Perl 中最小的非零正浮点数是多少?

    我有一个 Perl 程序 它处理的概率有时可能非常小 由于舍入误差 有时其中一个概率为零 我想做以下检查 use constant TINY FLOAT gt 1e 200 my prob calculate prob if prob 0
  • sha1() 用于密码哈希

    我使用 sha1 来保证密码安全 我以这种方式将密码存储在register php中 secure password salt openssl random pseudo bytes 20 secured password sha1 pas
  • HTML5 Canvas putImageData,翻译它,更改图像

    我想使用 HTML5 画布绘制图像 翻译图像 然后更改图像 但保留我所做的转换 这可能吗 这是一些伪代码来说明我的问题 initially draw an image and translate it var context canvas
  • 如何在Python中打印嵌套列表的所有可能性?

    这是我的清单 pos det noun adj noun vb det vb noun adj Or pos det noun adj noun vb det vb noun adj 我正在尝试打印所有组合 det noun noun vb
  • 为什么要修复 E_NOTICE 错误?

    作为一名开发人员 我在打开 E NOTICE 的情况下工作 最近有人问我为什么应该修复 E NOTICE 错误 我能想到的唯一原因是纠正这些问题是最佳实践 还有其他人有任何理由证明花费额外的时间 成本来纠正这些问题是合理的吗 更具体地说 如
  • 在头文件中使用 extern 的优点

    这里有一个类似的问题标题 但在阅读答案时 它似乎没有解决该特定问题 C 头文件中的 extern 有什么用 它更像是 为什么使用头文件 在下面的用法中extern extern int a int b structs have no ext
  • ggplot2:箱线图是否仅用于计算 y 轴范围内的值?

    我注意到箱线图的中位数 用受限的 ylim 参数构建 可能与中位数 函数或未调整 y 轴的箱线图获得的中位数不同 这是否意味着箱线图仅用于计算位于 y 轴定义间隔内的值 如果是这样 我怎样才能获得正确的箱线图 基于所有值 但将其绘制在 y
  • findViewById 不适用于特定视图

    我有一个从 XML 加载的活动 视图像往常一样具有 ID
  • 初始化和解构控制器的最佳实践

    构建应用程序时设置控制器的最佳方法是什么 我知道路由 事件侦听器和大多数交互性都应该由控制器管理 但是我的主控制器开始失去控制 我不确定如何最好地将我的逻辑分离到单独的控制器中而不保留它们全部 一直在奔跑 即使有数十数千个控制器 也可以在应
  • Rails 3 - 登录另一个站点并在会话中保留 cookie

    我正在组装一个小应用程序 它允许用户登录一个没有足够 API 的半流行社交网站 因此我使用 mechanize gem 来自动化我想要添加的一些功能任何人都可以使用 例如群发消息 由于 API 限制 我被迫假装是与站点的 http 接口交互
  • sa 用户被锁定,Windows 身份验证登录失败。怎么办?

    我以管理员身份登录 Windows 7 计算机 我正在尝试连接到同一台计算机上的 SQL Server 2012 SA 帐户已被锁定 当我尝试 Windows 身份验证时 登录失败 我现在如何登录 有没有外部工具可以解锁SA用户 我使用外部
  • 如何将行数据溢出到其他行下方

    在下面的变量中 我想将 900000 划分到其各自的三行下面 其中存在零 对于其他值类似 在新值到达之前动态计数的零的数量 A B是数据和A Bnew是期望的输出 请告诉我如何在 R 中做到这一点 A B A Bnew 0 0 0 0 90
  • 从 PowerShell 格式化 XML

    我有一个 PowerShell 脚本 它运行一个返回 XML 的存储过程 然后 我将 XML 导出到一个文件中 但当我打开该文件时 每行末尾都有 3 个点 并且该行不完整 这是使用out file 当我使用Export Clixml从查询返