【发布时间】:2015-05-29 08:31:57
【问题描述】:
我有一个格式如下的 xml 文档:
<root>
<obj>
<indexlist>
<index name="NUMD" value="val1" />
<index name="DATE" value="val2" />
</indexlist>
</obj>
</root>
现在我想更改名称设置为“DATE”的索引元素的值属性。我得到这样的属性:
$attr = $xml.selectnodes("//obj/indexlist/index[@name='DATE']/@value")
我可以通过键入以下内容查看值:
$attr.'#text'
但我无法改变它:
$attr.'#text' = 'foo'
The property '#text' cannot be found on this object. Verify that the property exists and can be set.
At line:1 char:1
+ $n.'#text' = 'foo'
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : PropertyAssignmentException
如何更改 XMLAttribute 的值?
如果可能的话,我还想坚持使用 XPath 直接返回属性,因为该脚本的最终用户将使用 XPath 在配置文件中定义要更改的元素和属性。
在对属性使用 XPath 的同时,用户只需提供要更改的属性和未来值,只需两个参数:XPath 和值。
【问题讨论】:
标签: xml powershell xpath xml-attribute