我正在为 servlet 提供一些功能,我想做的一件事是,当接收 InputStream(基本上是解析为 XML 格式的 PDF 文档)时,将该数据设置为 String 对象,然后我尝试删除所有空标签,但到目前为止我还没有得到任何好的结果:
这是 servlet 正在接收的数据
<form1>
<GenInfo>
<Section1>
<EmployeeDet>
<Title>999990000</Title>
<Firstname>MIKE</Firstname>
<Surname>SPENCER</Surname>
<CoName/>
<EmpAdd>
<Address><Add1/><Add2/><Town/><County/><Pcode/></Address>
</EmpAdd>
<PosHeld>DEVELOPER</PosHeld>
<Email/>
<ConNo/>
<Nationality/>
<PPSNo/>
<EmpNo/>
</EmployeeDet>
</Section1>
</GenInfo>
</form1>
最终结果应该是这样的:
<form1>
<GenInfo>
<Section1>
<EmployeeDet>
<Title>999990000</Title>
<Firstname>MIKE</Firstname>
<Surname>SPENCER</Surname>
<PosHeld>DEVELOPER</PosHeld>
</EmployeeDet>
</Section1>
</GenInfo>
</form1>
如果这是一个重复的问题,我很抱歉,但我对类似的帖子做了一些研究,但没有一个能为我提供正确的方法,这就是为什么我在另一篇帖子中问你。
先感谢您。
Here's regex
做你想做的事的方式。我确信可能有一些我没有想到的“边缘”情况,但有时你无法分辨何时使用regex
。此外,DOM 解析器可能是实现此目的的最佳方法。
public static void main(String[] args) throws Exception {
String[] patterns = new String[] {
// This will remove empty elements that look like <ElementName/>
"\\s*<\\w+/>",
// This will remove empty elements that look like <ElementName></ElementName>
"\\s*<\\w+></\\w+>",
// This will remove empty elements that look like
// <ElementName>
// </ElementName>
"\\s*<\\w+>\n*\\s*</\\w+>"
};
String xml = " <form1>\n" +
" <GenInfo>\n" +
" <Section1>\n" +
" <EmployeeDet>\n" +
" <Title>999990000</Title>\n" +
" <Firstname>MIKE</Firstname>\n" +
" <Surname>SPENCER</Surname>\n" +
" <CoName/>\n" +
" <EmpAdd>\n" +
" <Address><Add1/><Add2/><Town/><County/><Pcode/></Address>\n" +
" </EmpAdd>\n" +
" <PosHeld>DEVELOPER</PosHeld>\n" +
" <Email/>\n" +
" <ConNo/>\n" +
" <Nationality/>\n" +
" <PPSNo/>\n" +
" <EmpNo/>\n" +
" </EmployeeDet>\n" +
" </Section1>\n" +
" </GenInfo>\n" +
" </form1>";
for (String pattern : patterns) {
Matcher matcher = Pattern.compile(pattern).matcher(xml);
xml = matcher.replaceAll("");
}
System.out.println(xml);
}
Results:
<form1>
<GenInfo>
<Section1>
<EmployeeDet>
<Title>999990000</Title>
<Firstname>MIKE</Firstname>
<Surname>SPENCER</Surname>
<PosHeld>DEVELOPER</PosHeld>
</EmployeeDet>
</Section1>
</GenInfo>
</form1>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)