我想知道是否可以使用 PowerShell 修改/创建 XML 文件中的值。基本上我感兴趣的是:
语法 1:
<设置> <setting id="Location2" value="西班牙巴塞罗那"/> <setting id="Location2id" value="zmw:00000.1.08181"/> </设置>
语法 2:
<设置>
<音乐播放器>
<crossfade>0</crossfade>
<queuebydefault>false</queuebydefault>
</音乐播放器>
</设置>
语法 3:
<设置>
<皮肤设置>
<setting type="bool" name="skin.confluence.HomepageHideRecentlyAddedVideo">false</setting>
</皮肤设置>
</设置>
任何帮助将不胜感激。
谢谢。
Ƭᴇc*_*007 40
PowerShell 完全支持处理 XML 文件。
例如,如果我们采用您提供的第一个简介并将其粘贴到名为settings.xml“C:\blah”文件夹中的 XML 文件中,您可以获得每个设置的 ID,如下所示:
[xml]$myXML = Get-Content C:\blah\settings.xml
$myXML.settings.setting.id
Run Code Online (Sandbox Code Playgroud)
返回:
Location2
Location2id
Run Code Online (Sandbox Code Playgroud)
和
$myXML.settings.setting.value
Run Code Online (Sandbox Code Playgroud)
返回:
Barcelona, Spain
zmw:00000.1.08181
Run Code Online (Sandbox Code Playgroud)
如果我们用您在语法 #2 中提供的简介替换 XML 文件内容:
[xml]$myXML = Get-Content C:\blah\settings.xml
$myXML.settings.musicplayer.crossfade
Run Code Online (Sandbox Code Playgroud)
返回:
0
Run Code Online (Sandbox Code Playgroud)
要读取crossfade,请将其更改(更改为 2),然后保存:
[xml]$myXML = Get-Content C:\blah\settings.xml
$myXML.settings.musicplayer.crossfade = 2
$myXML.Save("C:\blah\settings.xml")
Run Code Online (Sandbox Code Playgroud)
评论后编辑:
更改 XML 元素本身(如巴塞罗那示例中的那样)有点棘手,因为您正在编辑 XML 结构本身,而不是它包含的数据。
[xml]$myXML = Get-Content C:\blah\settings.xml
$myXML.settings.ChildNodes.Item(0).value = "New York, USA"
$myXML.Save("C:\blah\settings.xml")
Run Code Online (Sandbox Code Playgroud)
对于 Skinsettings 示例,请尝试以下操作:
$myXML.settings.skinsettings.setting."#text" = "true"
Run Code Online (Sandbox Code Playgroud)
查看这些资源:
| 归档时间: |
|
| 查看次数: |
108723 次 |
| 最近记录: |