2013-02-20 35 views
11

Tôi đã đọc Xml file sử dụng mã được liệt kê dưới đâylàm thế nào để loại bỏ Xml phiên bản chuỗi từ chuỗi

String XmlString = ""; 
    String resourcePath=FilePathHelper.getResourceFilePath(request); 



     BufferedReader br = new BufferedReader(new FileReader(new File(resourcePath+ "SubIndicatorTemplate.xml"))); 
     String line; 
     StringBuilder sb = new StringBuilder(); 

     while((line=br.readLine())!= null){ 
      sb.append(line.trim()); 
     } 

     XmlString=sb.toString(); 

Bây giờ tôi nhận XmlString chích trong các định dạng được liệt kê dưới đây

<?xml version="1.0" encoding="UTF-8" standalone="no"?><Template><Caption Name="Book Details"/><Data Type="one"/><Titles><Title Name="Book no" Type="Numeric"/><Title Name="Book name" Type="Text"/></Titles></Template> 

Tôi muốn loại bỏ <?xml version="1.0" encoding="UTF-8" standalone="no"?> từ chuỗi trên. Do đó, tôi đã viết mã là

XmlString=XmlString.replaceAll("<?xml*?>", "").trim(); 

Nhưng vẫn là XmlString giống nhau. Vì vậy, hãy giúp tôi xóa thông tin phiên bản khỏi XmlString.

+0

một phương pháp bẩn sẽ được 'XmlString = XmlString.replaceAll (" "," ");' – mybecks

Trả lời

24

Thay đổi biểu thức chính quy của bạn để

XmlString=XmlString.replaceAll("\\<\\?xml(.+?)\\?\\>", "").trim(); 
+1

Bạn không cần phải thoát khỏi '<' or '> ' –

2

Một cách khác, chúng tôi sẽ làm điều đó như thế này:

XmlString = XmlString.substring(XmlString.firstIndexOf("<Template>")) 
1

chuỗi với chỉ số đầu tiên của '>' + 1 (+1 để có được char tiếp theo), sẽ không nó cung cấp cho bạn kết thúc của phiên bản xml? Mặc dù đây không phải là cách làm sạch.

2
if(XmlString .contains("<?xml")){ 
    XmlString = XmlString.substring(XmlString.indexOf("?>")+2); 
} 
2
String xmlString = readXml(); 
int p1 = xmlString.indexOf("<?xml "); 
int p2 = xmlString.indexOf("?>"); 
if (p1 != -1 && p2 != -1 && p2>p1){ 
    xmlString=xmlString.substring(0,p1)+xmlString(p2+2); 
} 

private String readXml(){ 
    //TOTO from file or any-pipeline read,convert to String.... 
} 
Các vấn đề liên quan