非法xml的格式,标签中有数字:
<?xml version="1.0" encoding="UTF-8"?>
<book>
<1 type="abc">
<price></price>
</1>
<2 type="abc">
<price></price>
</2>
<3 type="abc">
<price></price>
</3>
</book>
考虑用正则表达式替换,给每个数字加上一个后缀
@RequestMapping("/importXML")
public ModelAndView importXML(HttpServletRequest request, HttpServletResponse response)
{
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest)request;
// 获取服务器上下文路径
String path = request.getSession().getServletContext().getRealPath("/file");
// 创建文件存放路径
File folder = new File(path);
if (!folder.exists())
{
folder.mkdirs();
}
// 获取上传的文件
MultipartFile multiFile = multipartRequest.getFile("file");
String fname = multiFile.getOriginalFilename();
String suffix = fname.substring(fname.lastIndexOf("."));
String fileName = path + "/" + UUID.randomUUID().toString() + suffix;
File file = new File(fileName);
try
{
// 写文件到服务器
multiFile.transferTo(file);
}
catch (IllegalStateException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
try
{
String temp = null;
StringBuffer sb = new StringBuffer();
FileInputStream fileIn = new FileInputStream(file);
InputStreamReader bufferInputStr = new InputStreamReader(fileIn);
BufferedReader bufferedReader = new BufferedReader(bufferInputStr);
while ((temp = bufferedReader.readLine()) != null)
{
sb.append(temp);
}
String tempStr = sb.toString();
//正则表达式过滤后的字符串
String firstTempStr = "";
//替换所有数字开始的标签
firstTempStr = tempStr.replaceAll("\\<(?=\\d)", "<" + Global.TEMP);
firstTempStr = firstTempStr.replaceAll("\\</(?=\\d)", "</" + Global.TEMP);
Document doc = DocumentHelper.parseText(firstTempStr);
int i = importService.importXML(doc.getRootElement().element("InternetGatewayDevice"));
if(1 == i){
request.setAttribute("msg", "文件导入成功。");
}else{
request.setAttribute("msg", "文件导入失败。");
}
}
catch (Exception e)
{
e.printStackTrace();
}
return new ModelAndView("config/import_xml");
}
分享到:
相关推荐
正则表达式是一种强大的文本处理工具,用于匹配、查找、替换和提取字符串模式。在Java、Web开发等领域,正则表达式是不可或缺的一部分。本文将深入探讨正则表达式的概念、语法、应用以及如何在Java中使用它们。 一...
- `regex`:这是一个正则表达式,表示要查找和替换的模式。 - `replacement`:当找到匹配`regex`的模式时,将被用来替换的字符串。 ### 2. 反斜杠 `\` 的特殊意义 在Java和正则表达式中,反斜杠`\`是一个特殊的...
4. **正则表达式**:对于一些特定格式的敏感词,如连续的数字或特殊符号,可以使用正则表达式进行匹配。 5. **性能优化**:敏感词库可能非常大,为了提高效率,可以使用Trie树或Aho-Corasick算法等高效数据结构。 ...
这涉及到字符串的查找、替换和判断等操作,例如使用`indexOf()`或`contains()`方法检查关键字是否存在,使用`replace()`或`replaceAll()`方法替换非法字符。 3. **关键字列表**:为了实现过滤功能,我们需要定义一...
3. 正则表达式:正则表达式是描述字符串模式的工具,用于匹配、查找、替换和分割文本。Python中的re模块提供了正则表达式的支持。 应用场景: 1. 学术研究:研究人员可以爬取网络文献、数据、新闻等,进行数据分析...
首先,`parseXML.m`文件很可能是用于解析从新浪股票API获取的XML格式的数据。在MATLAB中,可以使用`xmlread`或`xml2struct`函数来解析XML文件或字符串。`xmlread`函数直接读取XML文件并返回一个XML DOM对象,而`xml2...
13. **正则表达式**:System.Text.RegularExpressions命名空间的Regex类,用于字符串匹配、替换和分割,实现复杂的文本处理。 这些类库大大简化了C#开发者的任务,提高了开发效率。掌握并灵活运用这些知识点,能够...
这段代码的含义是使用正则表达式匹配ASCII码值在0到8、11到12、14到31之间的所有字符,并将它们替换为空字符串。这样处理后,文件中就不会再含有那些导致解析错误的特殊字符。 此外,还有一种方法是使用HttpUtility...
3. **正则表达式**:在处理网页内容时,正则表达式是常用的工具,用于匹配和提取特定模式的数据。PHP提供preg_match_all或preg_replace等函数,用于执行正则匹配和替换操作,帮助从HTML文本中定位并提取小说的链接和...
常见的方法是替换或删除这些字符,或者使用正则表达式进行匹配和过滤。这样可以确保输入数据的安全性,防止恶意脚本被执行。 4. **传递请求**:过滤完成后,过滤器需要调用`chain.doFilter(request, response)`,将...
- **正则表达式**:可能用到正则表达式来验证用户输入是否符合特定格式,例如检查是否有非法字符。 ### 4. 时间管理 - **java.time** 包:Java 8引入了新的日期和时间API,可以方便地实现倒计时功能。 ### 5. ...
通常情况下,过滤逻辑可以是简单的字符串匹配,也可以是复杂的正则表达式匹配。通过这种方式,可以实现对特定URL路径的拦截、重定向或动态映射等功能。 ##### 2.2 应用场景 - **网站安全**:阻止恶意用户访问不安全...
由于XML的节点名称需要是合法的标签名称,因此代码中使用了正则表达式移除了键名中的非法字符。此外,为了避免在XML文档中出现以数字开头的节点名称,对于数字键值的节点名称进行了特别处理,将其修改成不以数字开头...
- 使用`getParameter()`或`getParameterValues()`获取参数后,可以对每个参数值执行自定义的过滤逻辑,例如使用正则表达式检查非法字符,或者替换敏感信息。 - 过滤后的参数可以使用`request.setAttribute()`方法...
同时,它拥有强大的查找和替换功能,支持正则表达式,能帮助用户快速定位和修改文本。 UItraEdit-32的注册码是软件激活的关键,每个注册码都是独一无二的,用于验证用户对软件的合法使用权。在初次安装后,用户需要...
- **Jakarta ORO**:用于处理正则表达式,提供文本替换和分割功能。 - **Commons BeansUtils**:提供方便的Bean操作工具。 - **Commons Logging**:统一的日志接口。 - **Commons Collections**:提供额外的集合实现...
这种方法首先创建了一个包含所有控制字符的字符串,然后使用正则表达式来匹配这些字符并将其替换为空字符串。最后,通过`simplejson.loads()`将清理后的JSON字符串转换为Python对象。 #### 总结 处理文本文件中的...
5. **查找和替换**:强大的搜索功能,支持正则表达式,可以实现复杂的文本查找和替换操作。 6. **编码转换**:支持各种字符编码,如UTF-8、ASCII、GBK等,方便处理不同编码格式的文件。 7. **自定义主题和字体**:...
这个过程可能涉及正则表达式或者对JavaScript语法的理解。 对于更复杂的情况,比如媒体地址被加密或编码,可能需要解码或逆向工程来获取真实地址。这通常涉及到JavaScript的执行环境,如JScript或V8引擎,但易语言...