2012-02-20 2 views
2

XMLデータを格納するSQLiteデータベースにNVARCHAR列があります。 SQLiteクエリでXMLの要素を取り除く必要があります。私は、XML文書のEnqid要素を取り除く必要があるSQLite XML SUBSTRING

<Inspection> 
<Enquiry> 
</Enquiry> 
<Enqid>282256</Enqid> 
<TargetDate>16/12/2011</TargetDate> 
</Inspection> 

- :

列XMLDATAは、次のようなXMLが含まれています。

私は部分文字列を使うことができましたが、最初に<Enqid>のインデックス位置を見つける必要があります。

標準のSQLiteを追加ライブラリなしで使用しています。

+1

私はちょうどSQLiteのは、INSTRをサポートしていませんがわかったMyTable、substr_index、見つけ、CHARINDEXや他の文字列の位置の関数から:(( – Aprillion

答えて

1

それは本当にこのように、私は手動で取り除かれるすべての文字列をリストより良いもののことではありませんが、SQLiteのクエリにする必要がある場合:

replace(replace(xmldata, 
'<Enquiry> 
</Enquiry> 
', ''), 
'<second_element></second_element>', '') 
as "stripped xmldata" 
+0

私はあなたがWROだと思いますスティックの最後に、タグをそのまま残しておく必要があります。ですから、私はノードだけを選択して、それ以外は選択できないようにする必要があります。 –

+0

oh ..あなたの例でそれがなぜ空であるのですか?私は絶対に考えて* SQLiteでそれを*どのように考えている:( – Aprillion

+0

そのEnqid私はお問い合わせが必要ない –

1

あなたはLIKE

を使用してみました

は、select * XMLDATA LIKE '282256' が

+0

これは動作するようだが、私が欲しいもののためにうまくいくXMLDATA列全体を選択するだけですが、これは動作しません私は、XMLDATA列のXMLデータの一部のみを取得したいと思っていました。 –

関連する問題