XML文書を解析するためにUDFを使用しようとしています。私は次のことを実行した場合、それが動作します:名前空間と一緒にハイブXPath UDFが動作しない
select xpath_string('<Application><applicationId>test</applicationId></Application>', '//applicationId') as id
from my_table limit 2;
出力は次のとおりです。
OK
test
test
今私は、次のコードを実行しますが、名前空間を追加した場合、私は私のXMLを解析することができません。
select xpath_string('<Application xmlns="http://domain.com/test"><applicationId>test</applicationId></Application>', '//applicationId') as id
from my_table limit 2;
空の文字列のみを取得します。
私が間違っていることはありますか?または、XPathを改善する必要がありますか?
ありがとうございます!
、私はDを行うことができます:applicationIdですが、ネームスペースが指定されていないときにパーサーが十分にスマートではありません。 – Stephane
説明[ここ](http://stackoverflow.com/a/21149866/2998271)を参照してください。このスレッドは、あなたが説明したのと同じように動作するsimplexmlに関するものです。デフォルト以外の名前空間の場合にのみ名前空間を意味します。 – har07
洞察力ありがとう。ベストは、明示的に名前空間の手紙を追加するために私のxmlを提供する人々をお勧めすることです。それは私のxpathクエリを大幅に単純化します – Stephane