如何在XML文件中选择xml:id属性?

时间:2016-09-17 18:26:24

标签: javascript xml

我正在研究遵循MEI标准的XML文件,该标准用于乐谱。该文件很长,因此可以访问here

我试图从TypeScript中选择xml:id属性:

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

myDoc的类型为Document

我的问题是Safari会回复Error: SyntaxError: DOM Exception 12。 根据我的基本知识,它表明查询格式错误。 所以我试图用另外一个:来逃避\字符。它使异常消失,但querySelector然后响应null,表明它找不到该元素。

知道如何选择特定的 xml:id

非常感谢,

1 个答案:

答案 0 :(得分: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 }
     

第一条规则只匹配具有属性att的元素   “http://www.example.com”名称空间,值为“val”。

     

第二条规则仅匹配具有属性att的元素   无论属性的名称空间(包括没有名称空间)。

     

最后两个规则是等效的,只匹配元素   属性att,其中属性不在命名空间中。

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