我正在做一个项目,以分析XML中的某些数据。
例如,XML是
<abc>abcdefghijklmno</abc>
我需要解析“ abcdefghijkmnlp”。
但是,当我测试我的解析时,我发现了一个大问题:
public class parser{
private boolean hasABC = false;
//Constructor HERE
......................
......................
@Override
public void startDocument () throws SAXException{
}
@Override
public void endDocument () throws SAXException{
}
@Override
public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException{
if ("abc".equalsIgnoreCase(localName)) {
this.hasABC = true;
}
}
@Override
public void endElement(String namespaceURI, String localName, String qName) throws SAXException{
if ("abc".equalsIgnoreCase(localName)) {
this.hasABC = false;
}
}
@Override
public void characters(char ch[], int start, int length){
String content = new String(ch, start, length).trim();
if(this.hasABC){
System.out.println("ABC = " + content);
}
}
}
我发现解析器已经两次解析了系统打印输出的标签,
ABC = abcdefghi
ABC = jklmno << ============拆分邮件
为什么解析器会两次自动调用character()?
XML是否具有一些“ \ n”或“ \ r”?
解析器characters
多次调用方法,因为它可以并且每个规范都允许。这有助于快速解析器,并保持较低的内存占用量。如果要使用单个字符串,请在中创建一个新StringBuilder
对象,startElement
然后在endElement
方法上对其进行处理。
问题内容: 我有一个像这样的字符串: 现在指示键值对,而将其分开。我想将键值对添加到地图。 我可以使用以下方法实现此目的: 但是,有一种有效的方法吗? 我觉得代码效率低下,因为我使用了2个对象并两次调用了该函数。另外,我正在使用,如果没有值,可能会引发。 问题答案: 您可以使用以下代码对split()进行一次调用,并对String进行一次传递。但是,它当然首先假定字符串有效: 上面的代码 可能 比
问题内容: 我想将字符串“ aaaabbbccccaaddddcfggghhhh”拆分为“ aaaa”,“ bbb”,“ cccc”。“ aa”,“ dddd”,“ c”,“ f”等。 我尝试了这个: 但这会吃掉一个字符,因此使用上面的正则表达式我得到“ aaa”,而我希望它成为“ aaaa”作为第一个字符串。 我该如何实现? 问题答案: 试试这个: 说明:我们想将字符串分成相同字符的组,因此我们
问题内容: 我正在尝试找到一种将String拆分为String数组的方法,并且每当遇到白色香料时就需要对其进行拆分,例如 “嗨,我是保罗” 进入” “嗨”“我”“保罗” 如何使用RegularExpression在split()方法中表示空格? 问题答案: 您需要一个正则表达式,例如,这意味着: 每当遇到至少一个空格时就进行拆分 。完整的Java代码是:
问题内容: 我有一个值为的字符串。我想将字符串分成两个字符串,值为的字符串和的值为字符串。 正确的功能/语法是什么? 我已经看过了,但是找不到将数据返回到两个单独的字符串中的实际语法。 问题答案: 该功能适用于:
问题内容: 一些外部数据供应商希望给我一个数据字段-管道分隔的字符串值,我觉得这很难处理。 没有应用程序编程语言的帮助,有没有办法将字符串值转换为行? 但是,存在一个困难,该字段具有未知数量的定界元素。 有问题的数据库引擎是MySQL。 例如: 问题答案: 它可能没有我最初想象的那么困难。 这是一种通用方法: 计算分隔符的出现次数 循环多次,每次获取一个新的定界值并将该值插入第二个表中。
问题内容: 我需要在SQL Server 2012中将一列中的字符串拆分为一个字符,并将每个字符串拆分成它自己的列。 例如:如果我有一个栏,我需要把它拆分成,,,,,与每个这些转化为自己列。 要拆分的列的长度可能会有所不同,因此我需要使其尽可能地动态。 问题答案: 您可以这样做: 输出: 这是动态版本: