2009-07-04 4 views
2

XPathでは、string() functionを使用してオブジェクトを文字列に変換することができます。今私はオブジェクトに文字列を変換したい。XPath:string()関数の反対ですか?

一部の情報が失われたため、一部の場合(たとえば要素の場合など)、不可能であることを理解しています。しかし、int型やboolean型のような単純型では可能です。

数字の場合はnumber()関数を使用できますが、単純な型変数の場合には一般的な仕組みが必要です。

答えて

4

stringに行くことは、あなたが文字列が必要だと言ったので簡単です。

同様に、numberに行くことは、あなたが数字を欲しいと言ったので簡単です。

しかし、あなたは何Xであることを告げていないため、「Xに戻ってそれを回す」言っても一般的な方法はありません。

(つまり持って、文字列は()は、Java/C/C++/C#のようなcastのようなものです。しかし、誰uncastはありません。)

文字列は()オブジェクトのシリアライザではありません、あなたができるので、脱直列化する。

なぜこれが必要ですか?おそらく、あなたの問題を解決する別の方法があります。

+0

私が実際に必要とするのは、シンプルタイプのシリアライゼーション(シリアライズは簡単です)とデシリアライゼーションですが、もちろん実際のタイプの変数を知っています。:) :)私はちょうどMYVARIABLEは右のタイプのものであり、これは細かい – javapowered

0

(私が知っている)言語がない場合は、AをBにキャストして、それをキャストする前の状態に戻す魔法の機能を呼び出すことができます。

何らかのデータ型を別のものに変換するプロセスは、常に一方向性のプロセスです。の前に、の情報を失います。これは、新しいデータタイプがのため、以前のバージョンのを保存できないためです。

あなたは何をしようとしていますか?私はあなたが間違った終わりから問題に取り組んでいるので、この質問をすることを強く疑う。

+0

同意する作品BPEL のxpath MYVARIABLE建設を使用しましたが、あなたが知っていればどちらかの問題は、XPathではないようですあなたはしばしば後退することができます。たとえば、(円)の数字です。 – javapowered

1

オブジェクト$xが数字1234の場合、string($x)は文字列"1234"になります。

あなたのオブジェクト$xは、string($x)は文字列"1234"になります最初のものは

<wibble><wobble>1<ping/>2</wobble>34</wibble> 

され、1000個のXML要素のノードセットである場合。

この関数はバイジェクションではありません。同じ文字列に多くの異なる値がマップされるため、逆関数を持つことはできません。

+0

これは非バイジェクション問題の良い説明です。 – TMG