XPointer 语法

XPointer 语法

在 HTML 中,我们可创建一个既指向某个 HTML 页面又指向 HTML 页面内某个书签的超级链接(使用#)。

有时,可指向更多具体的内容会更有好处。举例,我们需要指向某个特定的列表的第三个项目,或者指向第五段的第二行。通过 XPointer 是很容易做到的。

假如超级链接指向某个 XML 文档,我们可以在 xlink:href 属性中把 XPointer 部分添加到 URL 后面,这样就可以导航(通过 XPath 表达式)到文档中某个具体的位置了。

举例,在下面的例子中,我们通过唯一的 id “rock” 使用 XPointer 指向某个列表中的第五个项目。

  1. href="http://www.example.com/cdlist.xml#id('rock').child(5,item)"

实例

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <dogbreeds>
  3. <dog breed="Rottweiler" id="Rottweiler">
  4. <picture url="https://dog.com/rottweiler.gif" />
  5. <history>The Rottweiler's ancestors were probably Roman
  6. drover dogs.....</history>
  7. <temperament>Confident, bold, alert and imposing, the Rottweiler
  8. is a popular choice for its ability to protect....</temperament>
  9. </dog>
  10. <dog breed="FCRetriever" id="FCRetriever">
  11. <picture url="https://dog.com/fcretriever.gif" />
  12. <history>One of the earliest uses of retrieving dogs was to
  13. help fishermen retrieve fish from the water....</history>
  14. <temperament>The flat-coated retriever is a sweet, exuberant,
  15. lively dog that loves to play and retrieve....</temperament>
  16. </dog>
  17. </dogbreeds>

注意,上面的 XML 文档在每个元素上使用 id 属性!

因此,XPointer 不必链接到整个文档(与 XLink 一样),而是允许您链接到文档的特定部分。要链接到页面的特定部分,请在URL后面添加数字符号(#)和 XPointer 表达式 xlink:href 属性,如:xlink:href="https://dog.com/dogbreeds.xml#xpointer(id('Rotwiler'))。 表达式引用目标文档中的元素,id 值为"Rotwiler"。

XPointer 还允许使用一个快捷方法链接到具有 id 的元素。您可以直接使用 id 的值,如:xlink:href="https://dog.com/dogbreeds.xml#Rottweiler ".


以下XML文档包含指向我的每只狗的犬种的更多信息的链接:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <mydogs xmlns:xlink="http://www.w3.org/1999/xlink">
  3. <mydog>
  4. <description>
  5. Anton is my favorite dog. He has won a lot of.....
  6. </description>
  7. <fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#Rottweiler">
  8. Fact about Rottweiler
  9. </fact>
  10. </mydog>
  11. <mydog>
  12. <description>
  13. Pluto is the sweetest dog on earth......
  14. </description>
  15. <fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#FCRetriever">
  16. Fact about flat-coated Retriever
  17. </fact>
  18. </mydog>
  19. </mydogs>