xml - 使用 Powershell 转义 XML 元素名称中的破折号

标签 xml powershell escaping

我尝试使用 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/

相关文章:

c# - 如何在 .Net C# 中解析多个单个 xml 元素

powershell - Sitecore Powershell : items with multiple fields with the same name

string - Powershell - 从 PsObject 中的 AD 属性获取最后 3 个字符

terminal - 通过 ANSI 转义序列或 X11 转义序列禁用回显并设置原始终端模式

ruby-on-rails - 使用 Rails 3 将 HTML 转义为 JSON

android - 创建项目后首次构建时出错 : XML document structures must start and end within the same entity

android - 你如何在 android 中解析嵌入在它们自身中的 XML 标签?

java - 在 Android 按钮中应用自定义字体

arrays - Powershell:将数据从阵列中取出并放入新阵列中

java - 使用 Java 运行批处理文件(争论问题中的空格)