Java 如何从字符串中删除Xml版本字符串

Java 如何从字符串中删除Xml版本字符串,java,Java,我已经使用下面给出的代码阅读了Xml文件- String XmlString = ""; String resourcePath=FilePathHelper.getResourceFilePath(request); BufferedReader br = new BufferedReader(new FileReader(new File(resourcePath+ "SubIndicatorTemplate.xml"))); String l

我已经使用下面给出的代码阅读了Xml文件-

  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();
<?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>
现在我得到了如下格式的XmlString-

  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();
<?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>

我想从上面的字符串中删除

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

但XmlString仍然是相同的。因此,请帮助我从XmlString中删除版本信息。

另一种方法是:

XmlString = XmlString.substring(XmlString.indexOf("<Template>"))
XmlString=XmlString.substring(XmlString.indexOf(“”))

编辑:indexOf()而不是firstIndexOf()

第一个索引为“>”+1(+1)的子字符串,它是否会给您xml版本的结尾?尽管这不是一种干净的方法。

if(XmlString.contains(“”+2);
if(XmlString .contains("<?xml")){
  XmlString = XmlString.substring(XmlString.indexOf("?>")+2);
}
}
将正则表达式更改为

XmlString=XmlString.replaceAll("\\<\\?xml(.+?)\\?\\>", "").trim();
XmlString=XmlString.replaceAll(“\\”,”).trim();
String xmlString=readXml();
int p1=xmlString.indexOf(“”);
如果(p1!=-1&&p2!=-1&&p2>p1){
子字符串(0,p1)+xmlString(p2+2);
}
私有字符串readXml(){
//TOTO从文件或任何管道读取,转换为字符串。。。。
}

一个脏方法是
XmlString=XmlString.replaceAll(“,”)
您不需要转义