【问题标题】:Export SQL query results to XML format using powershell使用 powershell 将 SQL 查询结果导出为 XML 格式
【发布时间】:2012-08-18 08:53:56
【问题描述】:

我需要根据我使用 powershell 运行的 SQL 查询创建一个 XML 文件。我已经知道我需要创建的 XML 的架构。查询结果需要循环遍历,我想根据架构将每个数据值添加到特定的 XML 节点。

我能够运行查询并获得所需的结果,但我在按规定格式放置数据时遇到问题。

这是我如何尝试实现此目的的示例:

**解析 XML 模板

$XmlTemplate= [xml](get-content $xml) ($xml 是我从客户端获得的架构)

***通过XML模板解析并跳转到标签

$PlanIDXML= $XmlTemplate.NpiLink.PlanProvider.PlanID(到达我需要输入数据的节点)

**通过XML模板解析并跳转到标签

$PlannameXML= $XmlTemplate.NpiLink.PlanProvider.PlanName(到达我需要输入数据的节点)

样品 qry; 从计划中选择 PlanID,PlanName

**假设我运行查询并将结果保存为 $qryresults***

foreach($qryresults 中的$result) {

$PlanID=$result.PlanID $PlanName=$result.PlanName

**制作克隆

$NewPlanIDXML=$PlanIDXML.Clone()

**对数据进行更改

$NewPlanIDXML=$PlanID

***追加

$PlanIDXML.AppendChild($NewPlanIDXML)

* 为计划名称做同样的事情 **

$PlanNameXML=$result.PlanName

} $XmlTemplate.Save('文件路径')

我担心的是,我需要为查询结果中获得的每个计划或计划标识执行此操作,并且我需要继续生成标签和标签,并将它们附加到原始节点并保存架构。

所以,如果我的查询结果有 10 个计划 ID,它应该继续生成新的计划 ID 标签和计划名称标签。

它不允许我追加(因为 system.string 无法转换为 system.xml)。我真的被困住了,如果你有更好的方法来处理这个问题,我会全力以赴。

先谢谢了!!!

【问题讨论】:

    标签: sql xml powershell


    【解决方案1】:

    您可能对此进行了过度设计。如果您有 XML 节点的模板,只需将其视为字符串,在适当的位置弹出您的值。将这些节点的一些数组生成为字符串,然后将它们连接在一起并保存到磁盘。

    假设您的模板看起来像这样(您自己输入一些标记,生成的值应该去哪里):

    --Template.xml---
    <Node attr="##VALUE1##">
      <Param>##VALUE2##</Param>
    </Node>
    

    你想运行一些查询来生成一堆这样的节点,填写 VALUE1 和 VALUE2。那么这样的事情可能会起作用:

    $template = (gc .\Template.xml) -join "`r`n"
    $val1Token = '##VALUE1##'
    $val2Token = '##VALUE2##'
    
    $nodes = foreach( $item in Run-Query)
    {
       # simple string replace
       $result = $template
       $result = $result.Replace($val1Token, $item.Value1)
       $result = $result.Replace($val2Token, $item.Value2)
       $result
    }
    
    # you have all nodes in a string array, just join them together along with parent node
    $newXml = (@("<Nodes>") + $nodes + "</Nodes>") -join "`r`n"
    
    $newXml | out-file .\Results.xml
    

    【讨论】:

      猜你喜欢
      • 2013-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-15
      • 1970-01-01
      • 1970-01-01
      • 2021-12-25
      • 1970-01-01
      相关资源
      最近更新 更多