2016-09-17 56 views
2

我正在处理遵循MEI标准的XML文件,该标准用于音乐符号。该文件非常长,因此它可以访问here如何在XML文件中选择xml:id属性?

我试图选择XML:ID从打字稿属性有:

myDoc.querySelector('[xml\:id="toto"]');

myDoc的类型为Document

我的问题是,Safari响应Error: SyntaxError: DOM Exception 12。 从我的基本知识来看,它表明查询格式不正确。 所以我试图逃脱: char更多的\。它使异常消失,但是querySelector随后响应null,指示它找不到该元素。

任何想法如何选择特定xml:id

非常感谢,

回答

2

可以使用选择器[*|id='toto']与属性id具有值toto,例如匹配元件,

myDoc.querySelector("[*|id='toto']") 

Selectors Level 3 6.3.3. Attribute selectors and namespaces

CSS例子:

@namespace foo "http://www.example.com"; 
[foo|att=val] { color: blue } 
[*|att] { color: yellow } 
[|att] { color: green } 
[att] { color: green } 

第一条规则将仅匹配具有值“val”的 “http://www.example.com”命名空间中属性att的元素。

第二条规则将只匹配属性为att 的元素,而不管属性的名称空间(包括没有名称空间)。

最后两条规则是等价的,只会匹配 属性att属性不在名称空间中的元素。

plnkr http://plnkr.co/edit/frL23SK7DWe6lOroDSVc?p=preview