Java 如何从字符串中删除Xml版本字符串
我已经使用下面给出的代码阅读了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
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(“,”)
您不需要转义