我想使用librsvg渲染某些svg文件的 part 。 当我使用这些代码时:
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中的元素ID,或者为None以呈现整个SVG。例如,如果您要渲染一个名为“ layer1”的图层,则将“ ## layer1”作为id传递。
根据https://lazka.github.io/pgi-docs/Rsvg-2.0/classes/Handle.html,在svg中搜索需要以“ ##”作为前缀的ID。
如果我使用handle.has_sub(“ sub0”),该代码仍然无效。