在解析XML文件时忽略元素之间的空格,回车符和制表符

时间:2011-03-01 16:39:25

标签: xml whitespace sax character xerces

我想用SAX Xerces C ++解析XML文件,同时忽略任何空格,回车符和不在元素属性内或开始和结束元素内的制表符。我想忽略空格,回车和标签之间的标签。

例如,在以下XML文件中:

<tag1 attr1="val 1"><tag2>my text here</tag2>

[这里有很多空格] </tag1>

我想在字符串'val 1','my text here'中保留空格,但忽略回车符,以及结尾</tag2>和结尾</tag1>之间的许多空格字符

我尝试在startElement()中将布尔标志'withinElement'设置为true,并在endElement()方法中设置为false,但这并不妨碍我忽略</tag2>之间的空格字符和</tag1>例如。

应该在characters()方法中完成吗? 以及如何实现它,因为似乎没有办法知道调用characters()方法时的确切位置?

1 个答案:

答案 0 :(得分:0)

您可以要求解析器验证XML文件,然后您将通过ignorableWhitespace方法获得所有可忽略的空白,并通过characters获得“好”空白。