我正在研究遵循MEI标准的XML文件,该标准用于乐谱。该文件很长,因此可以访问here。
我试图从TypeScript中选择xml:id属性:
myDoc.querySelector('[xml\:id="toto"]');
myDoc
的类型为Document
。
我的问题是Safari会回复Error: SyntaxError: DOM Exception 12
。
根据我的基本知识,它表明查询格式错误。
所以我试图用另外一个:
来逃避\
字符。它使异常消失,但querySelector然后响应null
,表明它找不到该元素。
知道如何选择特定的 xml:id ?
非常感谢,
答案 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,其中属性不在命名空间中。