Aşağıdaki girişi göz önüne alındığında:
<start>
<header>
This is header section
</header>
<body>
<body_start>
This is body section
<a>
<b>
<c>
<st>111</st>
</c>
<d>
<st>blank</st>
</d>
</b>
</a>
</body_start>
<body_section>
This is body section
<a>
<b>
<c>
<st>5</st>
</c>
<d>
<st>666</st>
</d>
</b>
<b>
<c>
<st>154</st>
</c>
<d>
<st>1457954</st>
</d>
</b>
<b>
<c>
<st>845034</st>
</c>
<d>
<st>blank</st>
</d>
</b>
</a>
</body_section>
</body>
</start>
Aşağıdaki ayrıştırmayı yapmak istiyorum.
Eğer st
değeri c
etiketi olan 154
, daha sonra tüm <b>
için </b>
kaldırılan için ihtiyaçlarını etiketleyin. 154 değerinin dosyada bulunabileceğini veya bulunmayabileceğini unutmayın.
Dolayısıyla, eğer 154 değeri mevcutsa, aşağıdaki parçanın çıkarılması gerekir:
<b>
<c>
<st>154</st>
</c>
<d>
<st>1457954</st>
</d>
</b>
Kodlamayı bir kabuk betiğinde yapmak istiyorum. Kullanamıyorum xslt
çünkü sistemim desteklemiyor.
xmlstarlet
?
sed
bu görev için ideal bir araç değil. Perl, php veya benzeri bir dil kullanmalısınız - veya xml ile ilgili bir araç.