2016-09-30 9 views
0

xmlメッセージヘッダーの属性値を特定の値と比較して適切なフォルダーに移動するためのXPath式を記述します。 XMLヘッダは、I値にあるノードattirbute(コード要素の属性コード)を比較し、成立するフォルダそれにそれを指示したいラクダの属性値を比較する式Java DSL

?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="cda\render\cda.xsl"?> 
    <Books xmlns="urn:hl7-org:v3" 
     xmlns:classCode="DOCCLIN" xmlns:moodCode="EVN" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="urn:hl7-org:v3 ./cda_r2_normativewebedition2010/infrastructure/cda/CDA.xsd"> 
     <realmCode code="DE" /> 
     <typeId root="2.16.840.1.113883.1.3" extension="POCD_HD000040" /> 
     <templateId root="2.16.840.1.113883.10.20.29" /> 
     <templateId root="2.16.840.1.113883.10.20.33" /> 
     <templateId root="2.16.840.1.113883.10.20.33.1.1" /> 
     <id extension="2015121415313522" /> 
     <code code="12.3.34.65" codeSystem="2.16.840.1.113883.6.1" 
      codeSystemName="LOINC" displayName="Document" /> 
     <title>Prices</title> 
     <effectiveTime value="201512141531+0000" /> 
     <confidentialityCode code="N" codeSystem="2.16.840.1.113883.5.25" /> 
     <languageCode code="de-DE" /> 

あります。

私は属性の値が'12であるかどうかを.3.34.65' 確認したい

from("file:testxml/") 
       .choice() 
       .when() 
//    .xpath("urn:hl7-org:v3:Books/urn:hl7-org:v3:code/@code = '12.3.34.65'") 
       .xpath("urn:hl7-org:v3:ClinicalDocument/urn:hl7-org:v3:code[@code='12.3.34.65']") 
       .to("file:xPath/") 
       .to("direct:xpath"); 

      } 

のようなものを書きました。私を修正して、xpath式を正しい方法で書く方法を教えてください。

ありがとうございます!

答えて

0

サンプルxmlは無効です。また、コード要素の属性コードは'12 .3.34.65 'ではありません。以下を試して、outputをdestinationFolderにリダイレクトしてみてください。

from("file:testxml") 
.choice() 
    .when() 
    .xpath("/Books/code[@code='x.x.x.x']") 
    .to("file:destinationFolder"); 
+0

あなたは属性値については正しいですが、私は誤って抽象値を貼り付けていました。私は今それを修正しました。私は、値'12 .3.34.65 'を使ってXMLをテストしました。あなたが書いたコードは、私が書いたものと同じですが、名前空間はありません。名前空間参照がなければ、式は機能しません。 – Lucky