在带有xpath的nodejs中通过命名空间属性选择节点

时间:2018-12-19 13:02:18

标签: node.js xpath xmldom

我是SVG文档(由Inkscape创建)

现在,我想通过Nodejs操作文档中的某些元素。为此,我需要通过其(命名空间)属性值选择节点。 我的XML文档看起来像:

  ...
  </g>
  <g
     inkscape:label="Border"
     inkscape:groupmode="layer"
     id="layer1"
     sodipodi:insensitive="true"
     style="display:inline" />
  ...

我的代码如下:

var xpath = require('xpath')
  , dom = require('xmldom').DOMParser

var template = new dom().parseFromString(require('fs').readFileSync('file.svg').toString());
var nodes = xpath.select("//g[@inkscape:label='Border']", template);

但是nodes是一个空数组。为什么?我要纠正什么?我必须手动注册inkscape名称空间吗?

0 个答案:

没有答案