2011-01-14 20 views
1

を使用して特定のノードを選択:は、私は単純なXML文書を持ってXPATH

<?xml version="1.0" encoding="utf-8" ?> 
<root xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <date>BBB</date> 
    <name>CCC</name> 
</root> 

私は名前の値を選択する必要があり、 "CCC" に、次のXPATHのために正常に動作します.IT日付値 "BBB" によって:

/root[date=BBB]/name

しかし、私は名前空間が宣言されている限り、私はXPATHを上げることはできません。 この場合、私はlocal-name()関数を使用することが可能であることを知っています。しかし、私は次の式

/*[local-name() = 'root[date=BBB]']/*/*[local-name() = 'name']

を書く場合には動作しません。

/*[local-name() = 'root'][*[local-name()='date']='BBB'] 
    /*[local-name() = 'name'] 

しかし、私が使用するであろう。この場合のための::

/*[*[local-name()='date']='BBB']/*[local-name() = 'name'] 

」と少し短いあなたが使用する必要があります

/root[date='BBB']/name 

*[local-name()='...']のための任意のQNameのテストの交換

答えて

1

どんなルート要素であれ "

+0

アレハンドロありがとう、それは動作します! – mike

+0

@mike:どうぞよろしくお願いいたします。 –

関連する問題