4

我正在设计一个 XML 文档,其中包含类似<a.b></a.b>or的标签<b:c></b:c>。当然,如果我编写 CSS 规则,例如

a.b {
} 

b:c {
}

它不起作用,因为这些字符将分别被解释为类和伪类。有没有办法用 CSS 引用这些标签名称?(我不想使用XSL ...)

4

1 回答 1

5

如前所述,要引用.标签名称中带有 a 的元素,您可以简单地对其进行转义:

a\.b

但是对于一个元素就不能这么说了,因为在 XML 中有一个特殊的含义,作为命名空间的分隔符。这意味着您拥有的元素实际上是命名空间中的一个元素,而不是一个名为的元素。1b:c:cb 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 或任何:没有特殊含义的任意标记语言。

于 2013-04-06T10:13:34.583 回答