2016-04-07 1 views
0

xmlから 'testpoc'というテキストを抽出する必要があります。 同じものに関連するxpathを提供することによって親切に助けてください。xmlが名前空間と複数のタグを持っているときにlocal-name()関数を使ってxpath式を評価する

   '<am:entry>` `  
    `    <am:content type="application/xml">` 
        `<s:series-poc>` 
         '<s:c_series.c_id>testpoc</s:c_series.c_id>' 
        </s:series-poc>      
        </am:content> 
       </am:entry> 

私は以下のパスを使用してみましたが運はありませんでした。

A)( "// * [ローカル名()= 'c_series.c_id'] /テキスト()")、

b)は(「/エントリ/コンテンツ/直列POC/c_series。 C_ID /テキスト() ")、

C)(" /エントリ/コンテンツ/シリーズ-POC // * [ローカル名()= 'c_series.c_id'] /テキスト() ")

この点について、皆様のご支援に感謝いたします。 local-name()に頼る

/am:entry/am:content/s:c_series.c_id 

述語が最後にあるよう

答えて

0

あなたのXPath APIがURIに名前空間接頭辞を結合するいくつかの方法を提供する必要があり、たとえば

XPath.declareNamespace("am", "http://something.com/"); 
XPath.declareNamespace("s", "http://something.else.com/"); 

のためにあなたは、コンテンツを選択することができますこの方法でプレフィックスをバインドできない場合は解決してください。

どのAPIを使用していますか?

+0

マイケル、あなたの迅速な対応に感謝します。私は自分の名前空間とXML全体を投稿しました。私は私のxpathを定式化しようとしているコードを投稿しましたが、それぞれのテキストを抽出することはできません。 –

0

以下のXMLをチェックするも、あなたの詳細を提供する - 使用

名前空間: のxmlns:C = "http://iddn.abc.com/ns/core" のxmlns:F = "にhttp: //iddn.abc.com/ns/fields "xmlns:a =" http://iddn.abc.com/ns/assets "xmlns:s =" http://iddn.abc.com/ns/search " c_series.c_idタグ:>あなたが示唆したように、私は名前空間を宣言しようとした

 <atom:entry> 
     <atom:content type="application/vnd"> 
      <s:series-item-abc-poc> 
      <s:c_series.c_id>testpoc</s:c_series.c_id> 
      </s:series-item-abc-poc> 
     </atom:content> 
    </atom:entry> 

は、しかし、私は秒の値を取得することができませんでした。これは私がやったことです -

xpath = XPathFactory.newInstance()。newXPath();

XPath.declareNamespace( "s"、 "http://iddn.abc.com/ns/search");

expr = xpath.compile( "アトム:エントリ/アトム:コンテンツ/ s:シリーズアイテム-abc-poc/s:c_series.c_id/text()");

ここに何かがない場合はお知らせください。

ご協力ありがとうございます。

+0

この回答は、JAXP APIを使用してJavaアプリケーションからXPath式を実行する場合の解決方法を示しています。これがOPが使用しているプログラミング言語またはAPIであることを示唆する質問には何もありません。私はAPIの詳細についてはOPに尋ねたが、彼らは質問を理解していないようだ。 –

+0

前のコメントを無視してください:それは実際には質問に追加されたことを認識していないあなたの "答え"を誤解しています。この「答え」は元の質問の編集であったはずです。これは、使用しているAPIがJava JAXP APIであることを示しています。あなたは正しいアプローチを使用していますが、もちろん "atom"名前空間と "s"名前空間も宣言する必要があります。問題を解決しようとする試みが失敗した場合は、それがどのように失敗するかを具体的に記述してください。 –

関連する問題