मैं पावरहेल में कुछ एक्सएमएल संपादित करने की कोशिश कर रहा हूं। यहाँ मैं क्या कर रहा है:पावरशेल का उपयोग करके मैं XML को कैसे संपादित करूं?
$path = 'C:\Projects\NuGetTestPackage\NuGetTestPackage'
$projName = 'NuGetTestPackage1.csproj'
cd $path
$file = gi $projName
$pattern = 'TextTemplatingFileGenerator'
$xml = [xml](gc $file)
$node = [xml] $xml.Project.ItemGroup.None.Generator |
Where { $_.Project.ItemGroup.None.Generator -eq $pattern } |
Foreach {$_.Project.ItemGroup.None.Generator = ''}
$xml.Save($file.Fullname)
यहाँ एक्सएमएल है:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>
</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{E750ACF1-17B5-4D83-8FC8-5A4488193099}</ProjectGuid>
<ProjectTypeGuids>{E53F8FEA-EAE0-44A6-8774-FFD645390401};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>NuGetTestPackage</RootNamespace>
<AssemblyName>NuGetTestPackage</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<MvcBuildViews>false</MvcBuildViews>
<UseIISExpress>false</UseIISExpress>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="EntityFramework, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<Private>True</Private>
<HintPath>..\packages\EntityFramework.4.1.10331.0\lib\EntityFramework.dll</HintPath>
</Reference>
<Reference Include="System.Data.Entity" />
<Reference Include="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
<Reference Include="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
<Reference Include="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
<Reference Include="System.Web.DynamicData" />
<Reference Include="System.Web.Entity" />
<Reference Include="System.Web.ApplicationServices" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Core" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Web" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Web.Abstractions" />
<Reference Include="System.Web.Routing" />
<Reference Include="System.Xml" />
<Reference Include="System.Configuration" />
<Reference Include="System.Web.Services" />
<Reference Include="System.EnterpriseServices" />
</ItemGroup>
<ItemGroup>
<Compile Include="Application\ApplicationConfigurationSettings.cs" />
<Compile Include="Global.asax.cs">
<DependentUpon>Global.asax</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="Content\themes\base\images\ui-bg_flat_0_aaaaaa_40x100.png" />
<Content Include="Content\themes\base\images\ui-bg_flat_75_ffffff_40x100.png" />
<Content Include="Content\themes\base\images\ui-bg_glass_55_fbf9ee_1x400.png" />
<Content Include="Content\themes\base\images\ui-bg_glass_65_ffffff_1x400.png" />
<Content Include="Content\themes\base\images\ui-bg_glass_75_dadada_1x400.png" />
<Content Include="Content\themes\base\images\ui-bg_glass_75_e6e6e6_1x400.png" />
<Content Include="Content\themes\base\images\ui-bg_glass_95_fef1ec_1x400.png" />
<Content Include="Content\themes\base\images\ui-bg_highlight-soft_75_cccccc_1x100.png" />
<Content Include="Content\themes\base\images\ui-icons_222222_256x240.png" />
<Content Include="Content\themes\base\images\ui-icons_2e83ff_256x240.png" />
<Content Include="Content\themes\base\images\ui-icons_454545_256x240.png" />
<Content Include="Content\themes\base\images\ui-icons_888888_256x240.png" />
<Content Include="Content\themes\base\images\ui-icons_cd0a0a_256x240.png" />
<Content Include="Content\themes\base\jquery.ui.accordion.css" />
<Content Include="Content\themes\base\jquery.ui.all.css" />
<Content Include="Content\themes\base\jquery.ui.autocomplete.css" />
<Content Include="Content\themes\base\jquery.ui.base.css" />
<Content Include="Content\themes\base\jquery.ui.button.css" />
<Content Include="Content\themes\base\jquery.ui.core.css" />
<Content Include="Content\themes\base\jquery.ui.datepicker.css" />
<Content Include="Content\themes\base\jquery.ui.dialog.css" />
<Content Include="Content\themes\base\jquery.ui.progressbar.css" />
<Content Include="Content\themes\base\jquery.ui.resizable.css" />
<Content Include="Content\themes\base\jquery.ui.selectable.css" />
<Content Include="Content\themes\base\jquery.ui.slider.css" />
<Content Include="Content\themes\base\jquery.ui.tabs.css" />
<Content Include="Content\themes\base\jquery.ui.theme.css" />
<Content Include="Global.asax" />
<Content Include="Content\Site.css" />
<Content Include="Scripts\jquery-1.5.1-vsdoc.js" />
<Content Include="Scripts\jquery-1.5.1.js" />
<Content Include="Scripts\jquery-1.5.1.min.js" />
<Content Include="Scripts\jquery-ui-1.8.11.js" />
<Content Include="Scripts\jquery-ui-1.8.11.min.js" />
<Content Include="Scripts\jquery.validate-vsdoc.js" />
<Content Include="Scripts\jquery.validate.js" />
<Content Include="Scripts\jquery.validate.min.js" />
<Content Include="Scripts\modernizr-1.7.js" />
<Content Include="Scripts\modernizr-1.7.min.js" />
<Content Include="T4\WebConfigSettingGeneratorScript.txt">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>WebConfigSettingGeneratorScript.tt</DependentUpon>
</Content>
<Content Include="T4\WebConfigSettingGeneratorScript1.txt" />
<Content Include="Web.config" />
<Content Include="Web.Debug.config">
<DependentUpon>Web.config</DependentUpon>
</Content>
<Content Include="Web.Release.config">
<DependentUpon>Web.config</DependentUpon>
</Content>
<Content Include="Scripts\jquery.unobtrusive-ajax.js" />
<Content Include="Scripts\jquery.unobtrusive-ajax.min.js" />
<Content Include="Scripts\jquery.validate.unobtrusive.js" />
<Content Include="Scripts\jquery.validate.unobtrusive.min.js" />
<Content Include="Scripts\MicrosoftAjax.js" />
<Content Include="Scripts\MicrosoftAjax.debug.js" />
<Content Include="Scripts\MicrosoftMvcAjax.js" />
<Content Include="Scripts\MicrosoftMvcAjax.debug.js" />
<Content Include="Scripts\MicrosoftMvcValidation.js" />
<Content Include="Scripts\MicrosoftMvcValidation.debug.js" />
<Content Include="Views\Web.config" />
<Content Include="Views\_ViewStart.cshtml" />
<Content Include="Views\Shared\Error.cshtml" />
<Content Include="Views\Shared\_Layout.cshtml" />
</ItemGroup>
<ItemGroup>
<Folder Include="Controllers\" />
<Folder Include="Models\" />
</ItemGroup>
<ItemGroup>
<Content Include="packages.config" />
</ItemGroup>
<ItemGroup>
<None Include="CodeTemplates\AddController\Controller.tt" />
<None Include="CodeTemplates\AddController\ControllerWithContext.tt" />
<None Include="CodeTemplates\AddView\CSHTML\Create.tt" />
<None Include="CodeTemplates\AddView\CSHTML\Delete.tt" />
<None Include="CodeTemplates\AddView\CSHTML\Details.tt" />
<None Include="CodeTemplates\AddView\CSHTML\Edit.tt" />
<None Include="CodeTemplates\AddView\CSHTML\Empty.tt" />
<None Include="CodeTemplates\AddView\CSHTML\List.tt" />
<None Include="T4\Generators\WebConfigGenerator.tt" />
<None Include="T4\Templates\WebConfigTemplate.tt" />
<None Include="T4\WebConfigSettingGeneratorScript.tt">
<Generator>TextTemplatingFileGenerator</Generator>
<LastGenOutput>WebConfigSettingGeneratorScript.txt</LastGenOutput>
</None>
<None Include="T4\WebConfigSettingGeneratorScript.tt.log">
<DependentUpon>WebConfigSettingGeneratorScript.tt</DependentUpon>
</None>
</ItemGroup>
<ItemGroup>
<Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target> -->
<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
</Target>
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
<WebProjectProperties>
<UseIIS>False</UseIIS>
<AutoAssignPort>True</AutoAssignPort>
<DevelopmentServerPort>55059</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>
</IISUrl>
<NTLMAuthentication>False</NTLMAuthentication>
<UseCustomServer>False</UseCustomServer>
<CustomServerUrl>
</CustomServerUrl>
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
</WebProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
</Project>
विचार जेनरेटर नोड के मूल्य को अनुमति देना। मुझे यह कोड काम करने के लिए प्रतीत नहीं होता है। क्या मैं एक्सएमएल गुणों को गलत तरीके से एक्सेस कर रहा हूं? ऐसा लगता है कि मुझे प्रत्येक के लिए एक मूल्य वापस मिलता है, लेकिन मुझे इसे सही तरीके से एक्सेस करने में समस्या हो रही है।
ठीक है, धन्यवाद @ केथ हिल।
$path = 'C:\Projects\NuGetTestPackage\NuGetTestPackage'
$ns = @{msb = 'http://schemas.microsoft.com/developer/msbuild/2003'}
cd $path
$results = 0
$projName = 'NuGetTestPackage1.csproj'
$file = gi $projName
$xml = [xml](gc $projName)
$xml | Select-Xml "//msb:Generator" -Namespace $ns |
Foreach {
$_.Node.set_InnerText('')
$results = 1
}
if($results -eq 1){
$xml.Save($file.FullName)
}
क्या आपने "पैटर्न" स्ट्रिंग को भूल लिया? मैं नहीं समझता कि यह कैसे काम करेगा, जैसा है? – D3vtr0n
मुझे इस प्रश्न के शीर्षक के रूप में सामान्य और विवरण के रूप में उत्तर देखना अच्छा लगेगा। –