sex*_*ner 2 java eclipse blackberry java-me
所以,再次,由于黑莓的api限制,我有两个问题:
我从IOUtilities.streamToBytes(httpInput)回来的回复; call包含"<" 字符.那么我可以使用什么黑莓类/方法来取代我的"<" 用"<"?String类中只有1个replace()方法,该方法只能用另一个字符替换1个字符.再次,由于这是一个黑莓项目,我无法访问java 1.4以上的任何内容
我也从我的IOUtilities.streamToBytes(httpInput)回来的回复; 呼叫从通常的肥皂响应开始"<?xml version ="1.0"encoding ="utf-8"?> <string xmlns ="http://www.mydomain.com">".任何黑莓类/方法,我可以用来告诉程序只返回"<?xml version ="1.0"encoding ="utf-8"?> <string xmlns ="http://www.mydomain.com之间的所有内容">"和"</ string>"?
再次感谢大家的帮助.非常感激.我开始了解到,在黑莓环境中进行开发有时会有点单调乏味,因为某些java类(可以使编码更容易)无法使用.
您遇到的情况是被迫使用基于早期J2SE版本的J2ME配置文件.
我有一个替换实用程序的方法,我在针对早期平台时编写的字符串,可能对您有用.但要注意你真正想要的是一个XML解析器; 只是替换字符串才能在XML 非常简单的情况下工作.
static public String replace(String val, String fnd, String rpl, boolean igncas) {
int fl=(fnd==null ? 0 : fnd.length());
if(fl>0 && val.length()>=fl) {
StringBuffer sb=null; // string buffer
int xp=0; // index of previous fnd
for(int xa=0,mi=(val.length()-fl); xa<=mi; xa++) {
if(val.regionMatches(igncas,xa,fnd,0,fl)) {
if(xa>xp) { sb=append(sb,val.substring(xp,xa)); } // substring uses private construct which does not dup char[]
sb=append(sb,rpl);
xp=(xa+fl);
xa=(xp-1); // -1 to account for loop xa++;
}
}
if(sb!=null) {
if(xp<val.length()) { sb.append(val.substring(xp,val.length())); } // substring uses private construct which does not dup char[]
return sb.toString();
}
}
return val;
}
static private StringBuffer append(StringBuffer sb, String txt) {
if(sb==null) { sb=new StringBuffer(txt.length()); }
sb.append(txt);
return sb;
}
Run Code Online (Sandbox Code Playgroud)
至于问题的第二部分,您需要使用XML解析器来提取所需的信息.否则你将参加一些(可能是kludgy)手工工作.
快速浏览CLDC表明它可能基于Java 1.1(唉!).DigiLife有一个PDF文档,其中包含有关J2ME的更多信息.
了解您要定位的配置(CDC或CLDC)和哪个配置文件(MIDP或PP)对于了解哪些API可用至关重要.请注意,即使您使用的是基于 J2SE 1.4 的配置文件,它也可能缺少各种类和方法,包括各种XML解析包.因此,您可能必须自己从第三方提供替代方案(或自己编写).
编辑:我注意到BlackBerry V5 doco确实包含XML解析器包.
| 归档时间: |
|
| 查看次数: |
3459 次 |
| 最近记录: |