我尝试使用 Powershell 引用父对象列表中的一些 XML 元素,但是当我到达变量声明中包含连字符 ('-') 的位置时,声明的其余部分将被读取为争论。
我尝试将变量名称转换为字符串,并将其括在单引号和双引号以及括号中。没有一个起作用。
$imessagelist = $xml.pnet_message_history_packet_response.IMessage
$formidlist = $imessage.formdata.form_id
$fieldlist = $imessage.formdata.im_field
$fieldcontent = $field.data.data_numeric-enhanced
所有引用(例如 formidlist 和 fieldlist)都允许我将“.formdata.im_field”附加到项目列表中并检索数据。唯一不起作用的是其中带有破折号的那个。收到的错误如下:
At C:\Temps-v0.1.ps1:36 char:69
+ ... $fieldcontent = $field.data.data_numeric-enhanced
+ ~~~~~~~~~
Unexpected token '-enhanced' in expression or statement.
我不知道如何转义破折号并获取名为 data_numeric-enhanced 的字段中的值。非常欢迎任何建议!
最佳答案
您应该能够通过封装最后一个成员来访问该属性。
这应该有效:
$field.data.'data_numeric-enhanced'
关于xml - 使用 Powershell 转义 XML 元素名称中的破折号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57462105/