Как удалить теги из XML

«В разрешении отказано (открытый ключ)» поступает с удаленного сервера, поэтому вы либо используете неправильный ключ, либо подключение не разрешено, либо опечатка в удаленном файле authorized_keys.

1
12.02.2019, 20:19
1 ответ

Ваш пример не является допустимым файлом XML. Я немного изменил его, добавив элемент <root/>, окружающий документ (, и исправив вашу опечатку в закрывающем маркере </deviceID>):

.
<?xml version="1.0" encoding="utf-8"?>
<root>
    <deviceID>IO238470374109730497</deviceID>
    <KeyValuePairs>
        <KeyValuePair>
            <BASE-URL>2</BASE-URL>
            <Key>2</Key>
            <Value>2</Value>
        </KeyValuePair>
        <KeyValuePair>
            <BASE-URL>3</BASE-URL>
            <Key>3</Key>
            <Value>3</Value>
        </KeyValuePair>
    </KeyValuePairs>
</root>

Теперь для редактирования XML можно использовать инструмент редактирования XML. Это выражение XPath указывает xmlstarletудалить XML-элемент<KeyValuePair/>(и его содержимое ), где <BASE-URL/>имеет текстовое значение 3.

xmlstarlet ed -d '//KeyValuePair[BASE-URL/text()="3"]' /tmp/500185.xml

И вывод

<?xml version="1.0" encoding="utf-8"?>
<root>
  <deviceID>IO238470374109730497</deviceID>
  <KeyValuePairs>
    <KeyValuePair>
      <BASE-URL>2</BASE-URL>
      <Key>2</Key>
      <Value>2</Value>
    </KeyValuePair>
  </KeyValuePairs>
</root>
4
27.01.2020, 23:18

Теги

Похожие вопросы