0

次の XML 構造があり、値を取得する必要があります

<VALUE><![CDATA[PRUEBAS BPM]]></VALUE> 

2 つの条件を確認する必要があります。

  1. ノード FIELD[NAME="dependency"] に移動
  2. FIELD[NAME="名前"] に移動

私のXPATHは実際にはこのように書かれています

/TRAIL/ENTITY/FIELD[NAME="dependency"]/ENTITY/FIELD[NAME="name"]/PRIMITIVE/VALUE/text()

ただし、それはデータをもたらしません。私の XPATH はどういうわけか間違って書かれていますか? xml でその情報へのアクセスを整理するにはどうすればよいですか?

どんな助けでも大歓迎です。

ここに私のXML構造があります

<TRAIL>
  <ENTITY>
    <FIELD>
      <NAME>dependency</NAME>
      <ENTITY>
        <FIELD>
          <NAME>codigo</NAME>
          <PRIMITIVE>
            <VALUE><![CDATA[906]]></VALUE>
          </PRIMITIVE>
        </FIELD>
        <FIELD>
          <NAME>name</NAME>
          <PRIMITIVE>
            <VALUE><![CDATA[PRUEBAS BPM]]></VALUE>
          </PRIMITIVE>
        </FIELD>
      </ENTITY>
    </FIELD>
  </ENTITY>
</TRAIL>

よろしくお願いします。


さらに追加する必要があるのは、この XPATH を使用してデータベースから直接情報を取得していることです。これは私の SQL ステートメントです (delta は XML を含むテーブルの列です)

SELECT XPATH('(/TRAIL/ENTITY/FIELD[NAME="dependency"]/ENTITY/FIELD[NAME="name"])/PRIMITIVE/VALUE/text()', CAST( SUBSTRING( delta FROM position('<TRAIL>' IN delta) FOR char_length(delta)) AS ml ) ) FROM aud_huella_expediente
4

2 に答える 2

1

XPathは正しいです(式の末尾から削除して、オンラインtext()でテストしてください)。問題はCDATAセクションから発生する可能性があります。XPathを介してCDATAマークアップ内の要素テキストを取得するにはどうすればよいですか?を参照してください。

于 2012-05-05T10:53:57.977 に答える
0

その右のかっこを削除するだけでよいようです:

/TRAIL/ENTITY/FIELD[NAME="dependency"]/ENTITY/FIELD[NAME="name"]/PRIMITIVE/VALUE/text()
于 2012-05-04T21:54:19.360 に答える