gpt4 book ai didi

xml - PowerShell将XML属性添加到变量

转载 作者:行者123 更新时间:2023-12-03 00:26:20 25 4
gpt4 key购买 nike

我有一个XML文件,想使用PowerShell基于变量搜索节点,然后将属性设置为另一个可以使用的变量。

我的XML保存在C:\ example.xml中,代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<Portal>
<A23062013 Current="13" lastweek="12" />
<A24062013 Current="13" lastweek="12" />
</Portal>

Portal节点内XML节点的内容实际上是ddMMyyy格式的日期,并且这些日期的前缀为A,如上所述。

我的Powershell代码如下:
$date = (Get-Date).AddDays(-1).ToString('ddMMyyyy')
$pre = "A"
$completedate = "$pre$date"
[xml] $file = get-content "C:\example.xml"
$xmlValuePrevious = $file.SelectNodes ('$completedate') | select lastweek
$xmlValueCurrent = $file.SelectNodes ('$completedate') | select Current
Write-Host "$xmlValuePrevious $xmlValueCurrent"

当前,它在第5行和第6行引发错误,提示:

表达式或语句中出现意外的标记'('。

当我刚接触PS时,可能缺少一些容易的事情,但是我搜索了很长时间,找不到关于此问题的任何具体信息。

谢谢,广告

最佳答案

您的代码有几个问题:

  • 删除SelectNodes和左括号之间的空格。
  • 如果要在字符串中扩展变量,请使用双引号。或者,如果只想传递变量,请完全删除引号。
  • 要在XML树中的任何位置选择节点,您需要在节点名称前添加//。在XPath表达式中仅使用节点名称将在当前节点中仅选择具有该名称的节点。

  • 更改此:
    $xmlValuePrevious = $file.SelectNodes ('$completedate') | select lastweek
    $xmlValueCurrent = $file.SelectNodes ('$completedate') | select Current

    到这个:
    $xmlValuePrevious = $file.SelectNodes("//$completedate") | select lastweek
    $xmlValueCurrent = $file.SelectNodes("//$completedate") | select Current

    关于xml - PowerShell将XML属性添加到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26629868/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com