2010-07-06 2 views
2

나는 다음과 같은 XML이 :사용 XPath는 값에서 특정 토큰 요소를 선택합니다

 <ZMARA SEGMENT="1"> 
      <MATERIAL>000000000030001004</MATERIAL> 
      <PRODUCT_GROUP>14000IAA</PRODUCT_GROUP> 
      <PRODUCT_GROUP_DESC>HER 30 AR NEW Size</PRODUCT_GROUP_DESC> 
      <CLASS_CODE>I046</CLASS_CODE> 
      <CLASS_CODE_DESC>Heritage 30</CLASS_CODE_DESC> 
      <CHARACTERISTICS_01>,001,PLANNING_ALERT_PERCENTAGE, 50.000,PLANNI</CHARACTERISTICS_01> 
      <CHARACTERISTICS_02>X,001,COLOR_ATTRIBUTE,Weathered Wood,WEWD,Col</CHARACTERISTICS_02> 
      <CHARACTERISTICS_03>,001,ARMA_UOM,SALES SQUARE,SSQ,ARMA UNIT OF M</CHARACTERISTICS_03> 
      <CHARACTERISTICS_04>,001,ARMA_A_CATEGORY,05-Below 260 Lam/Multi-l</CHARACTERISTICS_04> 
     </ZMARA> 

내가 그 값이 COLOR_ATTRIBUTE 토큰을 포함하는 CHARACTERISTICS_XX 요소를 선택해야 XPath를 사용합니다. 항상 characteristics_02가되지는 않습니다. 도와 주셔서 감사합니다. 나는 XPath에서 완전히 멍청하다.

답변

6

이 자사의 수액 IDOC에서 촬영과 같은, 당신은 아마 fieldnamed 6 자 긴 약어 :

대답 스핀 온에 의해 제공되지 않습니다 운이 될 수 있습니다

/ZMARA/*[starts-with(local-name(.), 'CHARACTERISTICS_')][contains(.,'COLOR_ATTRIBUTE')] 

또 다른 제안은 다음과 같습니다 텍스트 'COLOR_ATTRIBUTE'를 포함하는 다른 요소가있을 수 있다면, 그러나,이보다 구체적인 일치하는 올바른 줄 것입니다 위의 표현식에서 ZMARA 요소가 발생할 수있는 위치를 알고있는 경우 '//'식을 피하기 위해 ZMARA는 더 뛰어난 성능을 제공하는 루트 요소로만 검색됩니다.

+0

좋아 보인다. 나는 그것을 사용할 것이다. 그리고 네, 이것이 SAP IDOC 데이터입니다. 도와 주셔서 감사합니다. – mpenrow

3

이 작동합니다 :

//ZMARA/*[contains(.,'COLOR_ATTRIBUTE')] 
+0

도움 주셔서 감사합니다. – mpenrow

관련 문제