Я хочу использовать librsvg для рендеринга части некоторых файлов SVG.
Когда я использую этот код:
try {
handle = new Rsvg.Handle.from_file(inputtext);
} catch (GLib.Error e) {error ("%s", e.message);}
if(handle.has_sub("##sub0") && handle.has_sub("##sub1"))
{sub=0; stdout.printf("found sub0 and sub1.\n");}
ничего не случилось. конечно id = "sub0" и id = "sub1" находится в файле svg, и обрабатывает также работу (может правильно отобразить весь svg).
id (str или None) - идентификатор элемента в SVG или None для рендеринга всего SVG. Например, если у вас есть слой с именем «layer1», который вы хотите визуализировать, передайте «## layer1» в качестве идентификатора.
в соответствии с https://lazka.github.io/pgi-docs/Rsvg-2.0/classes/Handle.html, для поиска идентификатора в svg необходимо поставить префикс "##".
Если я использую handle.has_sub ("sub0"), код все равно не работает.