Like Share Discussion Bookmark Smile

J.J. Huang   2022-11-24   XML 2.延伸介紹   瀏覽次數:次   DMCA.com Protection Status

XML教學 | XML 和 XPointer

XPointer是什麼?

XPointer是在XML檔中定位資料的一種語言,其定位是根據資料在檔案中位置、字元內容以及屬性值等特徵進行的。
要注意,XPointer一樣是沒有瀏覽器支持。

註:圖片截取於w3schools - XML and XPath

  • XPointer允許連結指向XML檔的特定部分。
  • XPointer使用XPath表達式在XML檔中導航。
  • XPointerW3C推薦標準。

簡單的範例

在此範例中,我們將結合使用XPointerXLink來指向另一個檔的特定部分。

我們將從查看目標XML檔開始:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="UTF-8"?>

<dogbreeds>

<dog breed="Rottweiler" id="Rottweiler">
<picture url="https://dog.com/rottweiler.gif" />
<history>The Rottweiler's ancestors were probably Roman
drover dogs.....</history>
<temperament>Confident, bold, alert and imposing, the Rottweiler
is a popular choice for its ability to protect....</temperament>
</dog>

<dog breed="FCRetriever" id="FCRetriever">
<picture url="https://dog.com/fcretriever.gif" />
<history>One of the earliest uses of retrieving dogs was to
help fishermen retrieve fish from the water....</history>
<temperament>The flat-coated retriever is a sweet, exuberant,
lively dog that loves to play and retrieve....</temperament>
</dog>

</dogbreeds>

此處注意到,上面的XML檔在每個元素上都使用了id屬性。

1
2
<dog breed="Rottweiler" id="Rottweiler">
<dog breed="FCRetriever" id="FCRetriever">

因此,XPointer允許您連結到特定部分,而不是連結到整個檔。
要連結到頁面的特定部分,請在xlink:href屬性中的URL後添加數字符號 (#) 和XPointer表達式。

1
xlink:href="https://dog.com/dogbreeds.xml#xpointer(id('Rottweiler'))`

表達式引用目標檔中的元素id值為Rottweiler

另外可以使用速記方法連結到具有id的元素。可以直接使用id的值。

1
xlink:href="https://dog.com/dogbreeds.xml#Rottweiler"

以下XML檔包含指向每隻狗品種的更多信息的連結:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="UTF-8"?>

<mydogs xmlns:xlink="http://www.w3.org/1999/xlink">

<mydog>
<description>
Anton is my favorite dog. He has won a lot of.....
</description>
<fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#Rottweiler">
Fact about Rottweiler
</fact>
</mydog>

<mydog>
<description>
Pluto is the sweetest dog on earth......
</description>
<fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#FCRetriever">
Fact about flat-coated Retriever
</fact>
</mydog>

</mydogs>

結語

此章節「簡單」介紹了XPointer,由於無法使用瀏覽器好好表示其效果。
主要就是結合XLink一起做使用時,可以透過XPointer定位到特定位置,而不在是整份的XML檔做連結。


註:以上參考了
維基百科-XML
w3resource.com - XML , XLink 和 XPointer
Family with 220 icons by inipagi