/
970.txt
34 lines (23 loc) · 2.48 KB
/
970.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
* 仕様書
[REFS[
- [44] [CITE[XML Path Language (XPath)]] ([TIME[2010-01-20 22:49:28 +09:00]] 版) <http://www.w3.org/TR/xpath/#function-lang>
]REFS]
* XML 以外
[45] [[HTML]] には [CODE(HTMLa)@en[[[lang]]]] [[属性]]が、 [[HTTP]] には [CODE(HTTP)@en[[[Content-Language:]]]]
欄がありますが、 [[XPath 1.0]] 仕様上も [[Chrome]]、[[Firefox]] の実装上も [SRC[[TIME[2013-09-29T02:21:52.300Z]]]]、
[[XML]] の [CODE(XMLa)@en[[[xml:lang]]]] [[属性]]のみが考慮されます。
[REFS[
- [46] <http://software.hixie.ch/utilities/js/live-dom-viewer/?%3C!DOCTYPE%20html%3E%0A%3Cdiv%3E%3Cp%3E%3C%2Fdiv%3E%0A%3Cscript%3E%0A%20%20document.getElementsByTagName%20('div')%5B0%5D.setAttributeNS%20('http%3A%2F%2Fwww.w3.org%2FXML%2F1998%2Fnamespace'%2C%20'xml%3Alang'%2C%20'fr-fr')%3B%0A%2F%2F%20%20document.getElementsByTagName%20('div')%5B0%5D.setAttributeNS%20(null%2C%20'lang'%2C%20'fr-fr')%3B%0A%20%20var%20r%20%3D%20document.evaluate%20(%22%2F%2Fp%5Blang('fr')%5D%22%2C%20document%2C%20function%20(prefix)%20%7B%20w(prefix)%3B%20return%20%22aa%22%20%7D%2C%200%2C%20null)%3B%0A%20%20w%20(r.iterateNext%20())%3B%0A%3C%2Fscript%3E>
]REFS]
;; [47] [[選択子]]の [CODE(CSS)@en[[[:lang()]]]] [[擬似クラス]]や [[CSS]] の [CODE(CSS)@en[[[-webkit-locale]]]]
[[プロパティー]]はこれらも考慮するので異なる結果になります。
* メモ
[6] [[XPath]] の[[関数]] [CODE(XPath)[[[lang()]]]] って使えないと思いません? 引数に[[言語札]]を与えることで、その言語 (前方一致。) であるかどうかを [[boolean]] として返します。だから例えば、 [[XSLT]] を使って多言語文書から特定言語の段落を抜き出す、とかには使えても、特定要素ノードの言語を調べる、には使えない。 ([CODE(XML)[xml:lang]] 属性使ってもいいけど、この属性の値は継承するから・・・あ、 [CODE(XPath)[ancestor-or-self::*[@xml:lang]/@xml:lang]] という手があるか。)
[20] >>6 でもそれじゃあ上位プロトコルによる情報までは手が及ばない。
っていうか XPath 全体として、上位プロトコル提供の情報には access
不能 or 困難だよねぇ。
[43]
[CITE[d:id:quaa]] ([CODE[2007-08-06 19:32:28 +09:00]] 版) <http://d.hatena.ne.jp/quaa/20070805#p1>
[1] [CITE@en[RFC 5323 - Web Distributed Authoring and Versioning (WebDAV) SEARCH]]
([TIME[2017-10-01 13:49:21 +09:00]])
<https://tools.ietf.org/html/rfc5323#section-5.12.2>