2

職場で、XSLT 変換コードを更新しています。いくつかの場所で、以前のプログラマーが以前の式を使用して、XML ドキュメントから SOME_LABEL という名前の要素の値を取得していました。

//*[self::SOME_LABEL] と //SOME_LABEL の両方の形式は、同じ結果ノード セットを生成するようです。

元のプログラマーはもうここで質問するために働いていませんが、私の調査では、前者が後者よりも好ましい理由を見つけることができませんでした。私は確かに作業中のコードを壊したくありませんが、2 番目の形式の方がはるかに読みやすく、自己文書化 (保守性) に優れています。

私は自分が書いている新しいコードで同じ結果を達成するためにそれを使用する傾向があり、そのような式をすべて一貫したものにしたいと考えています。そうしないと、コードに両方の奇妙な混合物が残ります。

最初のフォームのすべての出現箇所を 2 番目に変更してはならない理由はありますか?

4

2 に答える 2

1

デフォルトの軸は child:: であるため、意味が異なります。次の図は Crane Softwrights によるものです。

有効な XHTML.

ただし、 //*[self::X] が //X と同じノードに一致することは事実です。はい、この置換を行います。

于 2012-06-06T15:51:37.700 に答える