2013-03-28 7 views
-1

есть файл XML с структурой, какИзвлечение поля из XML-файла с погодой

<codes> 
    <condition> 
     <code>395</code> 
     <description>Moderate or heavy snow in area with thunder</description> 
     <day_icon>wsymbol_0012_heavy_snow_showers</day_icon> 
     <night_icon>wsymbol_0028_heavy_snow_showers_night</night_icon> 
    </condition> 
    <condition> 
     <code>392</code> 
     <description>Patchy light snow in area with thunder</description> 
     <day_icon>wsymbol_0016_thundery_showers</day_icon> 
     <night_icon>wsymbol_0032_thundery_showers_night</night_icon> 
    </condition> 
</codes> 

Как написать функцию, Волю описания ответа Thats только с помощью кода

как FUNC (395) вернуться @Moderate или сильный снег в области с громом @

+3

Любой код, который вы пытались до сих пор – austin

+0

Загляни в JDOM я просто попробовал вчера, и это р retty легко понять и использовать. –

ответ

0

Простой способ сделать это - использовать регулярное выражение для извлечения значения. Его быстрый и эффективный (почему разобрать все в памяти (DOM).

public static String extractDescription(String code, String xmlData){ 
     //search for the entire condition element based on the id 
     Pattern elementPattern=Pattern.compile("<condition><code>"+code+"</code><description>(.*?)</description>.*</condition>"); 

     Matcher elementMatcher=elementPattern.matcher(xmlData); 

     if(elementMatcher.groupCount()>0){//if we have some groups to match in our pattern 
      if(elementMatcher.find()){//find the matches 
       return elementMatcher.group(1); 
      } 
      else{//no match found 
       return null; 
      } 
     } 
     else{//our pattern is useless and does not contain any groups to match 
      return null; 
     } 
    } 

только тяжелая работа здесь является Pattern.compile (..), но его все еще довольно быстро.

Смежные вопросы