Это проще, чем вы думаете на самом деле - элементы XML имеют 4 «вещи» - имя, атрибуты, дочерние элементы и «контент».
Таким образом, вы можете перебирать все элементы содержимого и просто печатать их (с переводом строки или без него).
#!/usr/env/perl
use strict;
use warnings;
use XML::Twig;
my $twig = XML::Twig -> parsefile ( 'your_file');
print $_ -> text."\n" for grep { $_ -> is_pcdata } $twig -> get_xpath('//*');
Это выявляет все узлы «содержимого» ( pcdata
) и печатает их - по одному на каждый линия.
Но на самом деле, когда дело доходит до XML, «читабельный» - это своего рода суть. Почему бы просто не распечатать его и оставить как есть, чтобы человек, читающий его, мог ... ну, прочитать и не потерять данные в процессе.
Вы можете переформатировать его, если хотите:
$twig -> set_pretty_print ('indented_a');
$twig -> print;
Это довольно хорошее приближение к «читаемому человеку».
Позвольте мне ответить, насколько я могу с предоставленной информацией.
Во-первых, SLES 12 (и более поздние версии )действительно не нуждаются в пакете ядра -kdump. Этот особый вариант ядра был нужен только в древние времена, потому что ядро паники должно быть загружено по физическому адресу, отличному от работающего ядра, но адрес загрузки можно было изменить только во время компиляции (, иначе ядро нельзя было перемещать ). ].
Во-вторых, kdump не запускается, потому что базовый системный вызов kexec_file_load
завершается с ошибкой EADDRNOTAVAIL
. Это происходит, если система не может выделить один или несколько буферов, необходимых для загрузки ядра паники в оперативную память. Обратите внимание, что теоретически может быть достаточно зарезервированной памяти для ядра паники, но поскольку выделение имеет некоторые дополнительные ограничения, накладываемые загрузочным кодом ядра Linux и/или драйверами, эта оперативная память может не использоваться для загрузки ядра паники. Другой системе может повезти больше благодаря другому расположению физической памяти.
В качестве первого шага я бы попробовал увеличить размер зарезервированной памяти в командной строке ядра (, например. crashkernel=256M
), перезагрузитесь и посмотрите, поможет ли это.