我有一个PowerShell对象,其中包含一个包含XML String但不包含整个XML Document的属性 - 只是该节点。列出这个
$field.schemaxml;
<Field Type="Lookup" DisplayName="My Lookup" Required="FALSE" EnforceUniqueValues="FALSE" List="{447f56b0-0e38-461c-a0d2
-aa58e30ff270}" WebId="d31c0006-5576-4d1f-a0bb-ba3ce4ff787b" ShowField="Title" UnlimitedLengthInDocumentLibrary="FALSE"
Group="_My Columns" ID="{dc1ee48c-7bf8-487d-b63f-bfda9aedec4c}" SourceID="{d31c0006-5576-4d1f-a0bb-ba3ce4ff787b}" Static
Name="My_x0020_Lookup" Name="My_x0020_Lookup" Version="1" />
使用Powershell将其解析为XML Node对象的正确方法是什么,使用xpath或类似方法选择“List”属性值(或任何属性)并更改它。
答案 0 :(得分:0)
假设您的示例中的属性是“StaticName”而没有空格,以下内容对我有效。
<强>的PowerShell 强>
$node = '<Field Type="Lookup" DisplayName="My Lookup" Required="FALSE" EnforceUniqueValues="FALSE" List="{447f56b0-0e38-461c-a0d2
-aa58e30ff270}" WebId="d31c0006-5576-4d1f-a0bb-ba3ce4ff787b" ShowField="Title" UnlimitedLengthInDocumentLibrary="FALSE"
Group="_My Columns" ID="{dc1ee48c-7bf8-487d-b63f-bfda9aedec4c}" SourceID="{d31c0006-5576-4d1f-a0bb-ba3ce4ff787b}" StaticName="My_x0020_Lookup" Name="My_x0020_Lookup" Version="1" />'
$xml = [xml]$node
Write-Output "Field is:"
Write-Output $xml.Field
Write-Output "Changing DisplayName...$([Environment]::Newline)"
$xml.Field.DisplayName = "New DisplayName"
Write-Output "Field is now:"
Write-Output $xml.Field
提供以下输出:
Field is: Type : Lookup DisplayName : My Lookup Required : FALSE EnforceUniqueValues : FALSE List : {447f56b0-0e38-461c-a0d2 -aa58e30ff270} WebId : d31c0006-5576-4d1f-a0bb-ba3ce4ff787b ShowField : Title UnlimitedLengthInDocumentLibrary : FALSE Group : _My Columns ID : {dc1ee48c-7bf8-487d-b63f-bfda9aedec4c} SourceID : {d31c0006-5576-4d1f-a0bb-ba3ce4ff787b} StaticName : My_x0020_Lookup Name : My_x0020_Lookup Version : 1 Changing DisplayName... Field is now: Type : Lookup DisplayName : New DisplayName Required : FALSE EnforceUniqueValues : FALSE List : {447f56b0-0e38-461c-a0d2 -aa58e30ff270} WebId : d31c0006-5576-4d1f-a0bb-ba3ce4ff787b ShowField : Title UnlimitedLengthInDocumentLibrary : FALSE Group : _My Columns ID : {dc1ee48c-7bf8-487d-b63f-bfda9aedec4c} SourceID : {d31c0006-5576-4d1f-a0bb-ba3ce4ff787b} StaticName : My_x0020_Lookup Name : My_x0020_Lookup Version : 1