【问题标题】:nested XML parsing in powershellPowerShell中的嵌套XML解析
【发布时间】:2020-05-19 19:21:43
【问题描述】:

我正在尝试使用 powershell 解析 XML 文件以获取特定字段的值。我在尝试同时使用 Select-XML 和 [xml]$cn = Get-Content file.xml

时遇到了一些问题

我想知道是否有人可以看看并提供帮助?

<DentalContainer version="2019-1">
  <Object name="MainObject" type="TDM_Container">
    <Object name="OrderList" type="TDM_List_Order">
      <List name="Items">
        <Object type="TDM_Item_Order">
          <Property name="ClientID" value="91494"/>
          <Property name="ClientOrderNo" value=""/>
          <Property name="ClientContactPerson" value=""/>
          <Property name="OrderImportanceID" value="oiNormal"/>
          <Property name="Patient_RefNo" value=""/>
          <Property name="Patient_FirstName" value=""/>
          <Property name="Patient_LastName" value="testest"/>
          <Property name="DeliveryAddress1" value=""/>
          <Property name="DeliveryAddress2" value=""/>
          <Property name="DeliveryZip" value=""/>
          <Property name="DeliveryCity" value=""/>
          <Property name="DeliveryState" value=""/>
          <Property name="DeliveryCountryID" value=""/>
          <Property name="DeliveryType" value=""/>
          <Property name="ManufName" value="XYZ"/>
          <Property name="OperatorName" value="SIMPLE"/>
        </Object>
      </List>
    </Object>    
    <Property name="ImportForceOverwrite" value="false"/>
    <Property name="ImportForceClean" value="false"/>
    <Property name="EmptyRecycleBin" value="false"/>
  </Object>
</DentalContainer>

【问题讨论】:

标签: xml powershell parsing


【解决方案1】:

给定您的 xml 文件,您可以使用 XPath 从中查找某些值或属性。由于您的问题含糊不清,就像您感兴趣的内容一样,以下是有关如何访问属性属性(名称和值)的示例。

[xml]$cn = Get-Content C:\temp\xml.txt

# Single Node
$OrderImportanceID = $cn.DocumentElement.SelectSingleNode("//Property[@name='OrderImportanceID']").Attributes["value"].Value

# All Nodes that match Element with Property tag.
$allProperties = $cn.DocumentElement.SelectNodes("//Property")

# You Can loop all the properties and print each name and value
foreach($prop in $allProperties) {
    Write-output "Property Name: $($prop.Name), Value: $($prop.value)"
}

XPath syntax reference

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2020-10-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-17
    • 2022-01-04
    • 1970-01-01
    相关资源
    最近更新 更多