2009-10-14 2 views
0

Привет Я написал небольшой класс в Java для чтения в XML-файле в виде строки, а не мой вопрос заключается в следующем: как я могу добавить строку, так что выводит только то, что находится между тегами Physical_Order_List_ArrayreadXmlfile от Явы

здесь является ява класс:

public static String getFileContent(String fileName) 
    { 
     BufferedReader br = null; 
     StringBuilder sb = new StringBuilder(); 
     try { 
      br = new BufferedReader(new FileReader(fileName)); 
     try { 
      String s; 
      while((s = br.readLine()) != null) 
      { 
       sb.append(s); 
       sb.append("\n"); 
      } 
     } 

     finally { 
      br.close(); 
     } 
     } 
     catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
     return sb.toString(); 
    } 

вот некоторые из XML-файла его довольно большой:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
..... 
..... 
.....some content 
....here is what I only need 
<Physical_Order_List_Array> 
....now I need to get this portion of the code, append string to only output what is beetween these tags, including these tags as well 
</Physical_Order_List_Array> 
..... 
..... 
..... 

Спасибо за ваши ответы

+1

Вы не можете использовать существующие синтаксические анализаторы XML? Как SAX или DOM? – vpram86

+0

да я могу использовать либо – ant

ответ

5

Не читайте файл в виде строки, прочитайте его с помощью синтаксического анализатора XML и затем используйте XPath для извлечения нужных вам узлов. Я написал статьи обоим parsing и xpath, которые предоставят вам код, который вам нужен.

Кроме того, определите «довольно большой» - это мегабайт или гигабайт? Если последнее, тогда вам понадобится SAX-парсер, который я не описываю. Если первый, парсер DOM в порядке.

1

Я бы использовал XPath и использовал что-то вроде // Physical_Order_List_Array. Вы можете сами проанализировать XML (довольно простой конечный автомат, скорее всего, выполнит эту работу в большинстве случаев).

+0

, как бы я это сделал? – ant

+1

http://www.ibm.com/developerworks/library/x-javaxpathapi.html –