No.1ベストアンサー
- 回答日時:
preceding-sibling::*[1][aaa]
<a>
<b xml:id="x0100">
<aaa id="x0101"></aaa>
</b>
<b xml:id="x0200">
<aaa id="x0201"></aaa>
</b>
<c xml:id="x0300"/>
</a>
現在c要素を指しているとすると
要素名関係(*)なくpreceding-siblingを取って来る。その時の順番はreverse orderであるから
preceding-sibling::*[1]/@id は x0200
preceding-sibling::*[2]/@id は x0100
です。
その1番目の要素、つまりx0200の要素(ここまで今回はたまたま1個しかない条件)の中で
「aaa要素を子要素として持つ」という条件を満たすものです。= x0200の要素は条件をみたすのでこれが選ばれる。
preceding-sibling::*[1][self:aaa]
名前空間接頭辞selfに関連付けられた名前空間のaaa要素を子に持つ、という条件をみたすかどうか、という条件に変わっただけです。
ちなみに、
preceding-sibling::*[1][self::aaa]
はx0500の要素から見て、0x400の要素です。
preceding-sibling::*[1]自身の要素名が名前空間なしのaaaですから。
<a>
<b xml:id="x0300" />
<aaa xml:id="x0400" />
<c xml:id="x0500"/>
</a>
preceding-sibling::*[1][name()='aaa')]
は構文エラー
preceding-sibling::*[1][name()='aaa']
は最後の条件が「コンテキストノードのQNameが'aaa'」ということでpreceding-sibling::*[1][self::aaa]と同じ結果になるでしょう。
#厳密には[]でくくられたPredicateはnodeからbooleanへの変換がかかっていると思うけどね。
http://www.w3.org/TR/xpath/#predicates
#QNameって何?とかコンテキストノードって何?って聞かないでね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- 教えて!goo ★ 本日中に「即決!BA質問」です。 ランクAAからAAAがとてつもなく長い… そう感じる理由は何で 2 2022/11/22 11:22
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- 教えて!goo 僕はすでに今月の「AAA」は達成しましたので、 もう、質問への回答は一切する気が無いので、 即決質問 3 2022/11/21 15:29
- Visual Basic(VBA) VBA。複数のChangeイベントをまとめる方法 2 2022/03/31 12:03
- JavaScript JavaScript?jQuery?で書き方を教えてください。 初心者です。 AAAという要素をステ 2 2023/08/04 22:09
- 教えて!goo ★ 皆さま、今月度も残りあと10日です。 僕はすでに「AAA」を達成しておりますので… もう回答はす 3 2022/11/21 18:44
- レディース ブラジャーについての質問です。 20代ですが、左はAカップ右はAAAカップの貧乳です。 胸がAカップ 4 2023/03/06 14:03
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- 教えて!goo あのう・・自慢とかしても良いですか? 僕は7月末頃に教えてgooを始めました。 先月8月度は、 質問 7 2022/09/29 18:05
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでXMLを出力するプログラム...
-
XPathで途中に名前空間が設定さ...
-
XMLDocumentでスキーマを無視し...
-
VBAでXML文書のある特定タグ以...
-
CPUの考え方を教えてください ...
-
東芝のDynabookなのですがアン...
-
VB6.0でDOMを使用して...
-
Excel-VBAでXMLの複数ノードの...
-
バッチファイルでテキストファ...
-
XMLで要素が記述された順番に意...
-
VB6でXMLを処理するには
-
VBSでxmlの値を書き換えたい
-
UTF-8でエンコーディングとはど...
-
SNMP リンクダウンとノードダ...
-
xmlファイルが上手にHTMLに変換...
-
あるノードリストに、特定の名...
-
MSXMLを使ってノードを削除した...
-
MFCでのタブコントロールに...
-
xmlのテキストにリンクを張りた...
-
GoogleマップでKMLが読み込めない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
XPathで途中に名前空間が設定さ...
-
VBAでXMLを出力するプログラム...
-
XMLファイル内のデータ(値)を変...
-
VB6でXMLを作成しているのです...
-
VBAでXML文書のある特定タグ以...
-
XMLDocumentでスキーマを無視し...
-
WebBrowser1.Document.Body.Inn...
-
XMLの要素の内容の中に要素
-
エクセルVBA ウェブ上のボタ...
-
XmlをDetaSetに読み込んだ場合...
-
LoadCML
-
C#でXMLファイルの情報にアクセ...
-
CPUの考え方を教えてください ...
-
東芝のDynabookなのですがアン...
-
XMLで要素が記述された順番に意...
-
昔Winnyってありましたけど、あ...
-
UTF-8でエンコーディングとはど...
-
バッチファイルでテキストファ...
-
ルート要素ノードが2個ある場合?
-
Excel-VBAでXMLの複数ノードの...
おすすめ情報