java去掉xml换行符_删除XML字符元素中的重复换行符/制表符/空格

第一部分 - 替换多个空格 - 相对容易,但我不认为解析器会为你做这些:

InputSource stream = new InputSource(inputStream);

XPath xpath = XPathFactory.newInstance().newXPath();

Document doc = (Document) xpath.evaluate("/", stream, XPathConstants.NODE);

NodeList nodes = (NodeList) xpath.evaluate("//text()", doc,

XPathConstants.NODESET);

for (int i = 0; i < nodes.getLength(); i++) {

Text text = (Text) nodes.item(i);

text.setTextContent(text.getTextContent().replaceAll("\\s{2,}", " "));

}

// check results

TransformerFactory.newInstance()

.newTransformer()

.transform(new DOMSource(doc), new StreamResult(System.out));

这是困难的部分:

如果节点包含XML编码字符:标签( ),换行符( )或空格() - 它们应该保留。

解析器将始终将" "转换为"\t" - 您可能需要编写自己的XML解析器。

According to的作者{p {3}}:

我认为任何XML解析器都不会报告应用程序的数字字符引用 - 它们将始终展开。实际上,您的应用程序不应该关心这一点,而不是关心属性之间有多少空格。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值