1. ホーム
  2. xml

[解決済み] XPathの大文字小文字を区別しないマッチング?

2023-07-08 06:59:18

質問

例えば、以下のようなXMLの場合

<CATALOG>
    <CD title="Empire Burlesque"/>
    <CD title="empire burlesque"/>
    <CD title="EMPIRE BURLESQUE"/>
    <CD title="EmPiRe BuRLeSQuE"/>
    <CD title="Others"/>
<CATALOG>

最初の4つのレコードをマッチさせるには、次のようなxpathを使用します。 //CD[@title='empire burlesque'] . これを行うためのxpath関数はありますか?PHPの関数のような他のソリューションも受け付けます。

どのように解決するのですか?

XPath 2 には、小文字 (および大文字) の文字列関数があります。 それは大文字小文字の区別がないのと全く同じではありませんが、うまくいけば十分に近いものになります。

//CD[lower-case(@title)='empire burlesque']

XPath 1 を使っている場合、XPath 1 に対応した を使ったハックがあります。 .