PowerShell解析XML问题:无法通过点符号获取特定Quantity字段值
PowerShell解析XML获取指定Quantity值
问题分析
你需要获取XML第7行(第一个<OrderDetail>节点)的Quantity属性值,当前已成功加载XML并获取到Customer节点,但未深入到下层的Order和OrderDetail节点。
解决步骤
在PowerShell中处理XML时,多个同名节点会被解析为数组,需要通过索引(从0开始)指定目标节点,再通过点符号访问属性。
具体代码
# 加载XML文件 [xml]$xmlElm = Get-Content -Path "C:\Users\Admin\Downloads\Test1.xml" # 直接通过点符号链式访问目标Quantity值 $targetQuantity = $xmlElm.ROOT.Customers.Customer[0].Orders.Order[0].OrderDetail[0].Quantity # 输出结果 $targetQuantity
代码解释
Customer[0]:选择第一个<Customer>节点(对应XML中Arshad Ali的记录)Orders.Order[0]:选择该Customer下的第一个<Order>节点OrderDetail[0]:选择该Order下的第一个<OrderDetail>节点(即XML第7行的节点).Quantity:获取该节点的Quantity属性值
输出结果
5
扩展:遍历所有Quantity值
如果需要获取所有OrderDetail的Quantity值,可以用循环遍历:
foreach ($customer in $xmlElm.ROOT.Customers.Customer) { foreach ($order in $customer.Orders.Order) { foreach ($detail in $order.OrderDetail) { Write-Output "Customer: $($customer.CustomerName), OrderID: $($order.OrderID), Quantity: $($detail.Quantity)" } } }
内容的提问来源于stack exchange,提问作者Mirco
相关产品推荐
相关产品推荐

