Я использую командную строку для выполнения фильтрации, ниже мой XML файл
<data>
<numbers>
<value>1</value>
<extra>
<value>a</value>
</extra>
</numbers>
<numbers>
<value>2</value>
<extra>
<value>b</value>
</extra>
</numbers>
<numbers>
<value>3</value>
</numbers>
<numbers>
<value>10</value>
<extra>
<value>c</value>
</extra>
</numbers>
<numbers>...</numbers>
...
</data>
Как видите, я хочу, чтобы значения в теге "value" находились в разделе "numbers", но когда Я использую мой код perl для его фильтрации, также появятся «значение» под «дополнительными» тегами, как мне сделать, чтобы просто сохранить тег «значение» под «числами» и удалить теги «значение», которые находятся под "extra" ???
ниже мой perl код: (формат командной строки)
perl -nle 'while(<stdin>){if(/data|numbers|value/){chop; print}}' < sample.xml > output.xml
вывод этой командной строки:
<data>
<numbers>
<value>1</value>
<value>a</value>
</numbers>
<numbers>
<value>2</value>
<value>b</value>
</numbers>
<numbers>
<value>3</value>
</numbers>
<numbers>
<value>10</value>
<value>c</value>
</numbers>
<numbers>...</numbers>
...
</data>
Да, «лишние» теги удалены, но теги «value» в «extra» тегах все еще есть, я не хочу их, пожалуйста, помогите мне отредактировать мой код командной строки, большое спасибо !! !