我有一个显示GUI的脚本,通过卸载英国媒体报道软件和安装常见的东西,如flash,java,浏览器等,以及其他一些东西,帮助设置新PC。有复选框和几个文本框。我已经包含了为某些客户提供“预设”功能。预设是一个下拉列表,选择名称,并自动填充框。预设信息当前位于CSV文件中,但我正在迁移到XML。该脚本允许用户通过GUI窗口创建新预设和修改现有预设。要进行修改,选择所有需要的选项,从下拉列表中选择要修改的公司,用户单击“保存”以更新文件中的信息。这适用于CSV,但我无法弄清楚如何修改XML中的现有预设。
这是我所指的GUI框的截图,因此更容易可视化。
XML预设信息如下所示......
<Customers>
<Name>Company Name</Name>
<Presets Option1="TRUE" Option2="TRUE" Option3="" Option4="TRUE" />
<Name>Company Name 2</Name>
<Presets Option1="" Option2="" Option3="TRUE" Option4="TRUE" />
</Customers>
依旧......
如何从GUI中获取复选框和文本框信息并修改特定公司的预设数据?
我一直在试图以类似的方式使用索引号来将信息填充到GUI中,但我没有运气。
这是索引代码......
$company = $companybox.SelectedItem
$indexname = $CustomersXML.Customers.Name
$index = [array]::IndexOf($indexname,$company)
If ($customersxml.customers.presets.Uninstall[$index] -eq "True") { $uninstallbox.checked = $True };
答案 0 :(得分:0)
$x = [xml]'<Customers><Customer><Name>one</Name><Presets A=""/></Customer><Customer><Name>two</Name><Presets A=""/></Customer></Customers>'
$customerName = 'one'
$x.SelectSingleNode('//Customer[Name = "' + $customerName + '"]/Presets').SetAttribute('A', 'newvalue2')