简体   繁体   English

如何使用Powershell修改XML文件

[英]How to Modify XML File using Powershell

Hi Friends i want to modify some Text value in <Option Name="Activate">1</Option> to <Option Name="Activate">0</Option> . 嗨,朋友们,我想将<Option Name="Activate">1</Option>一些Text值修改为<Option Name="Activate">0</Option> I am unable to locate node value <Option Name="Activate">1</Option> using powershell. 我无法使用Powershell找到节点值<Option Name="Activate">1</Option> below is the full code section in which i want to modify the Text. 以下是我要修改文本的完整代码部分。 Please help. 请帮忙。

<User Name="Richard">
        <Option Name="Pass">b56e0b4ea4962283bee762525c2d490f</Option>
        <Option Name="Containers">MasterVal</Option>
        <Option Name="Max Limit Allowed">2</Option>
        <Option Name="Limit Allowed">0</Option>
        <Option Name="User Limit">0</Option>
        <Option Name="Activate">1</Option>
        <Option Name="Feedback"></Option>
        <Option Name="ForceSsl">2</Option>
        <FileAllowed>
            <Disallowed />
            <Allowed />
        </FileAllowed>
        <Authorizations />
        <SpeedLimits DlType="0" DlLimit="10" ServerDlLimitBypass="2" UlType="0" UlLimit="10" ServerUlLimitBypass="2">
            <Download />
            <Upload />
        </SpeedLimits>
    </User>

Download XML File Here 在此处下载XML文件

So far i have tried Below Code but unable to complete. 到目前为止,我已经尝试了以下代码,但无法完成。 :( :(

$xml = New-Object XML
$XML.Load("D:\PSScript\BookStore.xml")
$xml.bookstore.Users.user |
Where-Object { ($_.Name -eq 'Richard')} |
Select-Object -Property Option

**Note : I want to use a condition here for example i want to change 1 Tag text value only for specific user, In short i want to modify text based on user id, Like where name = Richard change its <Option Name="Activate">1</Option> to <Option Name="Activate">0</Option> ** **注意:例如,我想在此处使用条件,例如,我只想为特定用户更改1个标记文本值,简而言之,我想根据用户ID修改文本,例如name = Richard更改其<Option Name="Activate">1</Option><Option Name="Activate">0</Option> **

<BookStore> <Settings> <Item name="Admin port" type="numeric">88881</Item> </Settings> <Container> <Containers Name="MasterVal"> <Option Name="Max Limit Allowed">0</Option> <Option Name="Limit Allowed">0</Option> <Option Name="User Limit">0</Option> <Option Name="Activate">1</Option> <Option Name="Feedback"> </Option> <Option Name="ForceSsl">0</Option> <FileAllowed> <Disallowed /> <Allowed /> </FileAllowed> <Authorizations> <Authorization path="E:\\BookMaster\\RootFolder"> <Option Name="FileRead">1</Option> <Option Name="FileWrite">0</Option> <Option Name="FileDelete">0</Option> <Option Name="FileAppend">0</Option> <Option Name="pathCreate">0</Option> <Option Name="pathDelete">0</Option> <Option Name="pathList">1</Option> <Option Name="pathSubdirs">1</Option> <Option Name="IsHome">1</Option> <Option Name="AutoCreate">0</Option> </Authorization> <Authorization path="E:\\BookMaster\\RootFolder\\MST\\reports"> <Option Name="FileRead">1</Option> <Option Name="FileWrite">1</Option> <Option Name="FileDelete">1</Option> <BookStore> <Settings> <Item name="Admin port" type="numeric">88881</Item> </Settings> <Container> <Containers Name="MasterVal"> <Option Name="Max Limit Allowed">0</Option> <Option Name="Limit Allowed">0</Option> <Option Name="User Limit">0</Option> <Option Name="Activate">1</Option> <Option Name="Feedback"> </Option> <Option Name="ForceSsl">0</Option> <FileAllowed> <Disallowed /> <Allowed /> </FileAllowed> <Authorizations> <Authorization path="E:\\BookMaster\\RootFolder"> <Option Name="FileRead">1</Option> <Option Name="FileWrite">0</Option> <Option Name="FileDelete">0</Option> <Option Name="FileAppend">0</Option> <Option Name="pathCreate">0</Option> <Option Name="pathDelete">0</Option> <Option Name="pathList">1</Option> <Option Name="pathSubdirs">1</Option> <Option Name="IsHome">1</Option> <Option Name="AutoCreate">0</Option> </Authorization> <Authorization path="E:\\BookMaster\\RootFolder\\MST\\reports"> <Option Name="FileRead">1</Option> <Option Name="FileWrite">1</Option> <Option Name="FileDelete">1</Option> <Option Name="FileDelete">1</Option> <Option Name="FileAppend">1</Option> <Option Name="pathCreate">1</Option> <Option Name="pathDelete">0</Option> <Option Name="pathList">1</Option> <Option Name="pathSubdirs">1</Option> <Option Name="IsHome">0</Option> <Option Name="AutoCreate">0</Option> </Authorization> <Authorization path="E:\\BookMaster\\RootFolder\\MST\\NT"> <Option Name="FileRead">1</Option> <Option Name="FileWrite">1</Option> <Option Name="FileDelete">1</Option> <Option Name="FileAppend">1</Option> <Option Name="pathCreate">1</Option> <Option Name="pathDelete">0</Option> <Option Name="pathList">1</Option> <Option Name="pathSubdirs">1</Option> <Option Name="IsHome">0</Option> <Option Name="AutoCreate">0</Option> </Authorization> <Authorization path="E:\\BookMaster\\RootFolder\\MST\\WIN"> <Option Name="FileRead">1</Option> <Option Name="FileWrite">1</Option> <Option Name="FileDelete">1</Option> <Option Name="FileAppend">1</Option> <Option Name="pathCreate">1</Option> <Option Name="pathDelete">0</Option> <Option Name="FileDelete">1</Option> <Option Name="FileAppend">1</Option> <Option Name="pathCreate">1</Option> <Option Name="pathDelete">0</Option> <Option Name="pathList">1</Option> <Option Name="pathSubdirs">1</Option> <Option Name="IsHome">0</Option> <Option Name="AutoCreate">0</Option> </Authorization> <Authorization path="E:\\BookMaster\\RootFolder\\MST\\NT"> <Option Name="FileRead">1</Option> <Option Name="FileWrite">1</Option> <Option Name="FileDelete">1</Option> <Option Name="FileAppend">1</Option> <Option Name="pathCreate">1</Option> <Option Name="pathDelete">0</Option> <Option Name="pathList">1</Option> <Option Name="pathSubdirs">1</Option> <Option Name="IsHome">0</Option> <Option Name="AutoCreate">0</Option> </Authorization> <Authorization path="E:\\BookMaster\\RootFolder\\MST\\WIN"> <Option Name="FileRead">1</Option> <Option Name="FileWrite">1</Option> <Option Name="FileDelete">1</Option> <Option Name="FileAppend">1</Option> <Option Name="pathCreate">1</Option> <Option Name="pathDelete">0</Option> <Option Name="pathDelete">0</Option> <Option Name="pathList">1</Option> <Option Name="pathSubdirs">1</Option> <Option Name="IsHome">0</Option> <Option Name="AutoCreate">0</Option> </Authorization> <Authorization path="E:\\BookMaster\\RootFolder\\MST\\Winsxs"> <Option Name="FileRead">1</Option> <Option Name="FileWrite">1</Option> <Option Name="FileDelete">1</Option> <Option Name="FileAppend">1</Option> <Option Name="pathCreate">1</Option> <Option Name="pathDelete">0</Option> <Option Name="pathList">1</Option> <Option Name="pathSubdirs">1</Option> <Option Name="IsHome">0</Option> <Option Name="AutoCreate">0</Option> </Authorization> <Authorization path="E:\\BookMaster\\RootFolder\\SXS"> <Option Name="FileRead">1</Option> <Option Name="FileWrite">1</Option> <Option Name="FileDelete">1</Option> <Option Name="FileAppend">1</Option> <Option Name="pathCreate">1</Option> <Option Name="pathDelete">0</Option> <Option Name="pathList">1</Option> <Option Name="pathSubdirs">1</Option> <Option Name="IsHome">0</Option> <Option Name="AutoCreate">1</Option> <Option Name="pathDelete">0</Option> <Option Name="pathList">1</Option> <Option Name="pathSubdirs">1</Option> <Option Name="IsHome">0</Option> <Option Name="AutoCreate">0</Option> </Authorization> <Authorization path="E:\\BookMaster\\RootFolder\\MST\\Winsxs"> <Option Name="FileRead">1</Option> <Option Name="FileWrite">1</Option> <Option Name="FileDelete">1</Option> <Option Name="FileAppend">1</Option> <Option Name="pathCreate">1</Option> <Option Name="pathDelete">0</Option> <Option Name="pathList">1</Option> <Option Name="pathSubdirs">1</Option> <Option Name="IsHome">0</Option> <Option Name="AutoCreate">0</Option> </Authorization> <Authorization path="E:\\BookMaster\\RootFolder\\SXS"> <Option Name="FileRead">1</Option> <Option Name="FileWrite">1</Option> <Option Name="FileDelete">1</Option> <Option Name="FileAppend">1</Option> <Option Name="pathCreate">1</Option> <Option Name="pathDelete">0</Option> <Option Name="pathList">1</Option> <Option Name="pathSubdirs">1</Option> <Option Name="IsHome">0</Option> <Option Name="AutoCreate">1</Option> <Option Name="AutoCreate">1</Option> </Authorization> </Authorizations> <SpeedLimits DlType="1" DlLimit="10" ServerDlLimitBypass="0" UlType="1" UlLimit="10" ServerUlLimitBypass="0"> <Download /> <Upload /> </SpeedLimits> </Containers> <Containers Name="DMPL(9990)-D"> <Option Name="Max Limit Allowed">0</Option> <Option Name="Limit Allowed">0</Option> <Option Name="User Limit">0</Option> <Option Name="Activate">1</Option> <Option Name="Feedback"> </Option> <Option Name="ForceSsl">0</Option> <FileAllowed> <Disallowed /> <Allowed /> </FileAllowed> <Authorizations> <Authorization path="E:\\BookMaster\\RootFolder\\MST"> <Option Name="FileRead">1</Option> <Option Name="FileWrite">0</Option> <Option Name="FileDelete">0</Option> <Option Name="FileAppend">0</Option> <Option Name="pathCreate">0</Option> <Option Name="pathDelete">0</Option> <Option Name="pathList">1</Option> <Option Name="pathSubdirs">1</Option> <Option Name="IsHome">1</Option> <Option Name="AutoCreate">0</Option> </Authorization> <Authorization path="E:\\BookMaster\\RootFolder\\MST\\NT\\Report_9990"> <Option Name="AutoCreate">1</Option> </Authorization> </Authorizations> <SpeedLimits DlType="1" DlLimit="10" ServerDlLimitBypass="0" UlType="1" UlLimit="10" ServerUlLimitBypass="0"> <Download /> <Upload /> </SpeedLimits> </Containers> <Containers Name="DMPL(9990)-D"> <Option Name="Max Limit Allowed">0</Option> <Option Name="Limit Allowed">0</Option> <Option Name="User Limit">0</Option> <Option Name="Activate">1</Option> <Option Name="Feedback"> </Option> <Option Name="ForceSsl">0</Option> <FileAllowed> <Disallowed /> <Allowed /> </FileAllowed> <Authorizations> <Authorization path="E:\\BookMaster\\RootFolder\\MST"> <Option Name="FileRead">1</Option> <Option Name="FileWrite">0</Option> <Option Name="FileDelete">0</Option> <Option Name="FileAppend">0</Option> <Option Name="pathCreate">0</Option> <Option Name="pathDelete">0</Option> <Option Name="pathList">1</Option> <Option Name="pathSubdirs">1</Option> <Option Name="IsHome">1</Option> <Option Name="AutoCreate">0</Option> </Authorization> <Authorization path="E:\\BookMaster\\RootFolder\\MST\\NT\\Report_9990"> <Authorization path="E:\\BookMaster\\RootFolder\\MST\\NT\\Report_9990"> <Option Name="FileRead">1</Option> <Option Name="FileWrite">1</Option> <Option Name="FileDelete">1</Option> <Option Name="FileAppend">1</Option> <Option Name="pathCreate">0</Option> <Option Name="pathDelete">0</Option> <Option Name="pathList">1</Option> <Option Name="pathSubdirs">1</Option> <Option Name="IsHome">0</Option> <Option Name="AutoCreate">0</Option> </Authorization> </Authorizations> <SpeedLimits DlType="1" DlLimit="10" ServerDlLimitBypass="0" UlType="1" UlLimit="10" ServerUlLimitBypass="0"> <Download /> <Upload /> </SpeedLimits> </Containers> </Container> <Users> <User Name="leonardo"> <Option Name="Pass">05538eb07b4dbf66b1da4ea9374ac8f5</Option> <Option Name="Containers">MasterVal</Option> <Option Name="Max Limit Allowed">2</Option> <Option Name="Limit Allowed">0</Option> <Option Name="User Limit">0</Option> <Option Name="Activate">1</Option> <Option Name="Feedback"> </Option> <Option Name="ForceSsl">2</Option> <FileAllowed> <Disallowed /> <Authorization path="E:\\BookMaster\\RootFolder\\MST\\NT\\Report_9990"> <Option Name="FileRead">1</Option> <Option Name="FileWrite">1</Option> <Option Name="FileDelete">1</Option> <Option Name="FileAppend">1</Option> <Option Name="pathCreate">0</Option> <Option Name="pathDelete">0</Option> <Option Name="pathList">1</Option> <Option Name="pathSubdirs">1</Option> <Option Name="IsHome">0</Option> <Option Name="AutoCreate">0</Option> </Authorization> </Authorizations> <SpeedLimits DlType="1" DlLimit="10" ServerDlLimitBypass="0" UlType="1" UlLimit="10" ServerUlLimitBypass="0"> <Download /> <Upload /> </SpeedLimits> </Containers> </Container> <Users> <User Name="leonardo"> <Option Name="Pass">05538eb07b4dbf66b1da4ea9374ac8f5</Option> <Option Name="Containers">MasterVal</Option> <Option Name="Max Limit Allowed">2</Option> <Option Name="Limit Allowed">0</Option> <Option Name="User Limit">0</Option> <Option Name="Activate">1</Option> <Option Name="Feedback"> </Option> <Option Name="ForceSsl">2</Option> <FileAllowed> <Disallowed /> <Disallowed /> <Allowed /> </FileAllowed> <Authorizations /> <SpeedLimits DlType="0" DlLimit="10" ServerDlLimitBypass="2" UlType="0" UlLimit="10" ServerUlLimitBypass="2"> <Download /> <Upload /> </SpeedLimits> </User> <User Name="repturet"> <Option Name="Pass">e076fc6c4c8a245beec106646719f738</Option> <Option Name="Containers"> </Option> <Option Name="Max Limit Allowed">0</Option> <Option Name="Limit Allowed">0</Option> <Option Name="User Limit">0</Option> <Option Name="Activate">1</Option> <Option Name="Feedback"> </Option> <Option Name="ForceSsl">0</Option> <FileAllowed> <Disallowed /> <Allowed /> </FileAllowed> <Authorizations> <Authorization path="E:\\BookMaster\\RootFolder\\MST\\NT"> <Option Name="FileRead">1</Option> <Option Name="FileWrite">1</Option> <Option Name="FileDelete">0</Option> <Option Name="FileAppend">1</Option> <Option Name="pathCreate">0</Option> <Option Name="pathDelete">0</Option> <Option Name="pathList">1</Option> <Option Name="pathSubdirs">1</Option> <Option Name="IsHome">0</Option> <Disallowed /> <Allowed /> </FileAllowed> <Authorizations /> <SpeedLimits DlType="0" DlLimit="10" ServerDlLimitBypass="2" UlType="0" UlLimit="10" ServerUlLimitBypass="2"> <Download /> <Upload /> </SpeedLimits> </User> <User Name="repturet"> <Option Name="Pass">e076fc6c4c8a245beec106646719f738</Option> <Option Name="Containers"> </Option> <Option Name="Max Limit Allowed">0</Option> <Option Name="Limit Allowed">0</Option> <Option Name="User Limit">0</Option> <Option Name="Activate">1</Option> <Option Name="Feedback"> </Option> <Option Name="ForceSsl">0</Option> <FileAllowed> <Disallowed /> <Allowed /> </FileAllowed> <Authorizations> <Authorization path="E:\\BookMaster\\RootFolder\\MST\\NT"> <Option Name="FileRead">1</Option> <Option Name="FileWrite">1</Option> <Option Name="FileDelete">0</Option> <Option Name="FileAppend">1</Option> <Option Name="pathCreate">0</Option> <Option Name="pathDelete">0</Option> <Option Name="pathList">1</Option> <Option Name="pathSubdirs">1</Option> <Option Name="IsHome">0</Option> <Option Name="IsHome">0</Option> <Option Name="AutoCreate">0</Option> </Authorization> <Authorization path="E:\\BookMaster\\RootFolder\\MST"> <Option Name="FileRead">1</Option> <Option Name="FileWrite">0</Option> <Option Name="FileDelete">0</Option> <Option Name="FileAppend">0</Option> <Option Name="pathCreate">0</Option> <Option Name="pathDelete">0</Option> <Option Name="pathList">1</Option> <Option Name="pathSubdirs">1</Option> <Option Name="IsHome">1</Option> <Option Name="AutoCreate">0</Option> </Authorization> </Authorizations> <SpeedLimits DlType="0" DlLimit="10" ServerDlLimitBypass="0" UlType="0" UlLimit="10" ServerUlLimitBypass="0"> <Download /> <Upload /> </SpeedLimits> </User> <User Name="Anuj"> <Option Name="Pass">270a8eaf5877a08bc69bdde947f8e8b6</Option> <Option Name="Containers">DMPL(9990)-D</Option> <Option Name="Max Limit Allowed">2</Option> <Option Name="Limit Allowed">0</Option> <Option Name="User Limit">0</Option> <Option Name="Activate">1</Option> <Option Name="Feedback"> </Option> <Option Name="ForceSsl">2</Option> <Option Name="IsHome">0</Option> <Option Name="AutoCreate">0</Option> </Authorization> <Authorization path="E:\\BookMaster\\RootFolder\\MST"> <Option Name="FileRead">1</Option> <Option Name="FileWrite">0</Option> <Option Name="FileDelete">0</Option> <Option Name="FileAppend">0</Option> <Option Name="pathCreate">0</Option> <Option Name="pathDelete">0</Option> <Option Name="pathList">1</Option> <Option Name="pathSubdirs">1</Option> <Option Name="IsHome">1</Option> <Option Name="AutoCreate">0</Option> </Authorization> </Authorizations> <SpeedLimits DlType="0" DlLimit="10" ServerDlLimitBypass="0" UlType="0" UlLimit="10" ServerUlLimitBypass="0"> <Download /> <Upload /> </SpeedLimits> </User> <User Name="Anuj"> <Option Name="Pass">270a8eaf5877a08bc69bdde947f8e8b6</Option> <Option Name="Containers">DMPL(9990)-D</Option> <Option Name="Max Limit Allowed">2</Option> <Option Name="Limit Allowed">0</Option> <Option Name="User Limit">0</Option> <Option Name="Activate">1</Option> <Option Name="Feedback"> </Option> <Option Name="ForceSsl">2</Option> <Option Name="ForceSsl">2</Option> <FileAllowed> <Disallowed /> <Allowed /> </FileAllowed> <Authorizations /> <SpeedLimits DlType="0" DlLimit="10" ServerDlLimitBypass="2" UlType="0" UlLimit="10" ServerUlLimitBypass="2"> <Download /> <Upload /> </SpeedLimits> </User> <User Name="pallavi"> <Option Name="Pass">8d644bb6af9f1822de1d668d0ea6c36a</Option> <Option Name="Containers">MasterVal</Option> <Option Name="Max Limit Allowed">2</Option> <Option Name="Limit Allowed">0</Option> <Option Name="User Limit">0</Option> <Option Name="Activate">1</Option> <Option Name="Feedback"> </Option> <Option Name="ForceSsl">2</Option> <FileAllowed> <Disallowed /> <Allowed /> </FileAllowed> <Authorizations /> <SpeedLimits DlType="0" DlLimit="10" ServerDlLimitBypass="2" UlType="0" UlLimit="10" ServerUlLimitBypass="2"> <Download /> <Upload /> </SpeedLimits> </User> <User Name="piyush"> <Option Name="Pass">db699a999e4a6c8bd867720850d3007c</Option> <Option Name="Containers">MasterVal</Option> <Option Name="Max Limit Allowed">2</Option> <Option Name="ForceSsl">2</Option> <FileAllowed> <Disallowed /> <Allowed /> </FileAllowed> <Authorizations /> <SpeedLimits DlType="0" DlLimit="10" ServerDlLimitBypass="2" UlType="0" UlLimit="10" ServerUlLimitBypass="2"> <Download /> <Upload /> </SpeedLimits> </User> <User Name="pallavi"> <Option Name="Pass">8d644bb6af9f1822de1d668d0ea6c36a</Option> <Option Name="Containers">MasterVal</Option> <Option Name="Max Limit Allowed">2</Option> <Option Name="Limit Allowed">0</Option> <Option Name="User Limit">0</Option> <Option Name="Activate">1</Option> <Option Name="Feedback"> </Option> <Option Name="ForceSsl">2</Option> <FileAllowed> <Disallowed /> <Allowed /> </FileAllowed> <Authorizations /> <SpeedLimits DlType="0" DlLimit="10" ServerDlLimitBypass="2" UlType="0" UlLimit="10" ServerUlLimitBypass="2"> <Download /> <Upload /> </SpeedLimits> </User> <User Name="piyush"> <Option Name="Pass">db699a999e4a6c8bd867720850d3007c</Option> <Option Name="Containers">MasterVal</Option> <Option Name="Max Limit Allowed">2</Option> <Option Name="Max Limit Allowed">2</Option> <Option Name="Limit Allowed">0</Option> <Option Name="User Limit">0</Option> <Option Name="Activate">1</Option> <Option Name="Feedback"> </Option> <Option Name="ForceSsl">2</Option> <FileAllowed> <Disallowed /> <Allowed /> </FileAllowed> <Authorizations /> <SpeedLimits DlType="0" DlLimit="10" ServerDlLimitBypass="2" UlType="0" UlLimit="10" ServerUlLimitBypass="2"> <Download /> <Upload /> </SpeedLimits> </User> <User Name="Richard"> <Option Name="Pass">b56e0b4ea4962283bee762525c2d490f</Option> <Option Name="Containers">MasterVal</Option> <Option Name="Max Limit Allowed">2</Option> <Option Name="Limit Allowed">0</Option> <Option Name="User Limit">0</Option> <Option Name="Activate">1</Option> <Option Name="Feedback"> </Option> <Option Name="ForceSsl">2</Option> <FileAllowed> <Disallowed /> <Allowed /> </FileAllowed> <Authorizations /> <SpeedLimits DlType="0" DlLimit="10" ServerDlLimitBypass="2" UlType="0" UlLimit="10" ServerUlLimitBypass="2"> <Download /> <Upload /> </SpeedLimits> <Option Name="Max Limit Allowed">2</Option> <Option Name="Limit Allowed">0</Option> <Option Name="User Limit">0</Option> <Option Name="Activate">1</Option> <Option Name="Feedback"> </Option> <Option Name="ForceSsl">2</Option> <FileAllowed> <Disallowed /> <Allowed /> </FileAllowed> <Authorizations /> <SpeedLimits DlType="0" DlLimit="10" ServerDlLimitBypass="2" UlType="0" UlLimit="10" ServerUlLimitBypass="2"> <Download /> <Upload /> </SpeedLimits> </User> <User Name="Richard"> <Option Name="Pass">b56e0b4ea4962283bee762525c2d490f</Option> <Option Name="Containers">MasterVal</Option> <Option Name="Max Limit Allowed">2</Option> <Option Name="Limit Allowed">0</Option> <Option Name="User Limit">0</Option> <Option Name="Activate">1</Option> <Option Name="Feedback"> </Option> <Option Name="ForceSsl">2</Option> <FileAllowed> <Disallowed /> <Allowed /> </FileAllowed> <Authorizations /> <SpeedLimits DlType="0" DlLimit="10" ServerDlLimitBypass="2" UlType="0" UlLimit="10" ServerUlLimitBypass="2"> <Download /> <Upload /> </SpeedLimits> </SpeedLimits> </User> </Users> </BookStore> </SpeedLimits> </User> </Users> </BookStore>

Your main problem is you need to treat option elements as arrays. 您的主要问题是您需要将选项元素视为数组。 I copied your xml snippet to a file called test.xml and this code works (I'll explain how I parsed through your xml file at each step to show where Option is displaying as an array): 我将您的xml代码段复制到了一个名为test.xml的文件中,并且此代码有效(我将在每一步中解释如何通过xml文件进行解析,以显示Option在哪里显示为数组):

[xml] $info = Get-Content test.xml #Shorthand for New-Object..Load
#This command isn't necessary but is helpful when looking for an attribute
$info | Format-List *

#From above command saw that $info.User is the base document element
$info.User
#showed Attribute in Option
$info.User.Option
#displayed an array element with Attribute as the 5 (6th cause you start at 0) index
$info.User.Option[5]
#displayed Name and #text attributes with #text = 1
$info.User.Option[5].'#text' = "0"
#updated #text attribute to 0

From this you should be able to modify your script to work with the full xml file. 由此,您应该能够修改脚本以使用完整的xml文件。

As your still having problems, a better solution would be to adjust your xml so you can access each user as a full object rather then parsing through attributes: 由于您仍然遇到问题,因此更好的解决方案是调整xml,以便您可以将每个用户作为完整对象访问,而不是通过属性进行解析:

     <User>
         <name>Richard</name>
         <pass>b56e0b4ea4962283bee762525c2d490f</pass>
         <containers>MasterVal</containers>
         <maxLimit>2</maxLimit>
         <minLimit>0</minLimit>
         <userLimit>0</userLimit>
         <activate>1</activate>
         <feedback></feedback>
         <forceSsl>2</forceSsl>
         <FileAllowed>
             <Disallowed />
             <Allowed />
         </FileAllowed>
         <Authorizations />
         <SpeedLimits DlType="0" DlLimit="10" ServerDlLimitBypass="2" UlType="0"
     UlLimit="10" ServerUlLimitBypass="2">
             <Download />
             <Upload />
         </SpeedLimits>
     </User>

Then you can access each user as $info.User.Richard and change each activate tags using $info.User.Richard.activate = 0 . 然后,您可以以$info.User.Richard身份访问每个用户,并使用$info.User.Richard.activate = 0更改每个激活标签。 If you cannot do this you'll need to use foreach: 如果您不能执行此操作,则需要使用foreach:

[xml] $info = Get-Content test.xml
foreach ($i in $info.BookStore.Users.User) {
    if ($i.Name -eq "Richard") {
        foreach ($e in $i.Option) {
            if ($e.Name -eq "Activate") {
                $e.'#text' = "0"
            }
        }
    }
}

Then just write the xml back to the file. 然后只需将xml写回到文件中即可。 Note: Look at the use of select and select-xml if you want to simplify this later 注意:如果要稍后简化,请查看select和select-xml的用法

Updated: with full answer given xml file 更新:给出了完整答案的xml文件

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM