我很欣赏有关如何在标签之间获取(非元素)文本的指示。例如,给定元素ABC,我想获得文本ABC。
目前,我可以使用DefaultHandler::(const XMLCh *const chars, const XMLSize_t length)
来获取两个连续的开始或结束标记之间的字符。不幸的是,我得到了不必要的换行符和格式空间。在父标记和子元素之间。例如,在下面的代码中,我将获得5个额外的格式化字符 - 一个换行符和四个空格:
<Parent> <!-- Newline here -->
<Child>XYX</Child> <!-- Four spaces here -->
</Parent>
过滤掉这些格式化字符的最佳(标准)方法是什么?
答案 0 :(得分:0)
解决。为了后人的缘故,我就是这样做的。
因为所需的字符出现在定义元素的(连续的开始和结束)标记之间,所以在方法DefaultHandler::startElement()
中,我将本地名称存储在元素的开头,并将其与下一个“本地”进行比较遇到的名称。
如果遇到的下一个本地名称属于新元素,那么插入的字符必须是格式化字符,应该被忽略。
但是,如果遇到的下一个元素具有相同的本地名称,则插入的字符将形成所需的字符串。