LINUX.ORG.RU

xmlstarlet: При редактировании XML значения не трогать форматирование

 


0

1

Добрый день! Подскажите как с помощью xmlstarlet при редактировании XML значения не трогать форматирование? Пример:

xmlstarlet  edit --inplace -O -P  --update  //Project/PropertyGroup/VersionPrefix -v 'new value'  1.csproj


Исходный файл:
<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <VersionPrefix>1</VersionPrefix>
  </PropertyGroup>

  <ItemGroup Condition=" '$(TargetFramework)' == 'netcoreapp1.0' ">
    <PackageReference Include="dotnet-bump" Version="1.0.1" />
  </ItemGroup>

  <ItemGroup>
    <DotNetCliToolReference Include="dotnet-bump" Version="1.0.1" />
  </ItemGroup>

</Project>

Конечный файл:
<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <VersionPrefix>new value</VersionPrefix>
  </PropertyGroup>

  <ItemGroup Condition=" '$(TargetFramework)' == 'netcoreapp1.0' ">
    <PackageReference Include="dotnet-bump" Version="1.0.1"/>
  </ItemGroup>

  <ItemGroup>
    <DotNetCliToolReference Include="dotnet-bump" Version="1.0.1"/>
  </ItemGroup>

</Project>

Разница:
1c1
< <Project Sdk="Microsoft.NET.Sdk.Web">
---
> <Project Sdk="Microsoft.NET.Sdk.Web">
4c4
<     <VersionPrefix>new value</VersionPrefix>
---
>     <VersionPrefix>1</VersionPrefix>
8c8
<     <PackageReference Include="dotnet-bump" Version="1.0.1"/>
---
>     <PackageReference Include="dotnet-bump" Version="1.0.1" />
12c12
<     <DotNetCliToolReference Include="dotnet-bump" Version="1.0.1"/>
---
>     <DotNetCliToolReference Include="dotnet-bump" Version="1.0.1" />

Навскидку есть решение не очень красивое, но можно пропускать результат через форматтер, например так

$...|xmllint --format
anonymous_incognito ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.