有时XML的某些内容是待定的,对于这些内容可以在XML文件中使用占位符
- <people>
- <person id="001">
- <name>$name</name>
- <age>$age</age>
- </person>
- </people>
读取该文件的时候可以为其中的占位符设置值
- /**
- * IO操作工具类
- *
- * @author 徐越
- *
- */
- public class IOUtils
- {
- /**
- * 读取输入流为byte[]数组
- */
- public static byte[] read(InputStream instream) throws IOException
- {
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- byte[] buffer = new byte[1024];
- int len = 0;
- while ((len = instream.read(buffer)) != -1)
- {
- bos.write(buffer, 0, len);
- }
- return bos.toByteArray();
- }
- }
- InputStream instream = this.getClass().getClassLoader().getResourceAsStream("person.xml");
- String oldXML = new String(IOUtils.read(instream), "UTF-8");
- String newXML = oldXML.replaceAll("\\$name", "徐越").replaceAll("\\$age","22");
要说明的是replaceAll第一个参数是正则表达式,正则表达式中$需要用\转义。
Java中对\又需要用\进行转义,所以写成\\$name 。