我正在设计一个 XML 文档,其中包含类似<a.b></a.b>
or的标签<b:c></b:c>
。当然,如果我编写 CSS 规则,例如
a.b {
}
b:c {
}
它不起作用,因为这些字符将分别被解释为类和伪类。有没有办法用 CSS 引用这些标签名称?(我不想使用XSL ...)
我正在设计一个 XML 文档,其中包含类似<a.b></a.b>
or的标签<b:c></b:c>
。当然,如果我编写 CSS 规则,例如
a.b {
}
b:c {
}
它不起作用,因为这些字符将分别被解释为类和伪类。有没有办法用 CSS 引用这些标签名称?(我不想使用XSL ...)
如前所述,要引用.
标签名称中带有 a 的元素,您可以简单地对其进行转义:
a\.b
但是对于一个元素就不能这么说了,因为在 XML 中有一个特殊的含义,作为命名空间的分隔符。这意味着您拥有的元素实际上是命名空间中的一个元素,而不是一个名为的元素。1b:c
:
c
b
b:c
也就是说,有两种正确的方法可以选择该元素。首先,因为正如我提到的元素实际上被称为c
而不是b:c
,你可以简单地使用:
c
第二种方法,在命名空间冲突的情况下,首先b
在样式表的开头声明命名空间,使用@namespace
对应于 XML 文档中的命名空间(文档中的某处应该有xmlns:b
命名空间引用,否则它将无效):
/* Whichever URL corresponds to xmlns:b in your XML document */
@namespace b 'http://ns.example.com/b';
然后使用命名空间前缀来选择元素:
b|c
1 请记住,我们在这里讨论的是 XML,而不是 HTML 或任何:
没有特殊含义的任意标记语言。