kxml2解析blackberry上的xml文件
我想从xml文件中获取黑莓应用程序中的数据。我研究发现,使用kxml2是最好的选择。 但我在黑莓手机上找不到它的示例代码。我打开kxml2.jar,看到xmlParser和kxmlParser,我应该使用哪一个kxml2解析blackberry上的xml文件,xml,blackberry,java-me,blackberry-eclipse-plugin,kxml2,Xml,Blackberry,Java Me,Blackberry Eclipse Plugin,Kxml2,我想从xml文件中获取黑莓应用程序中的数据。我研究发现,使用kxml2是最好的选择。 但我在黑莓手机上找不到它的示例代码。我打开kxml2.jar,看到xmlParser和kxmlParser,我应该使用哪一个 anbody能帮我清楚地说明如何使用kxml2吗?这里是一个普通的XML解析和显示列表字段示例。。在基础阶段不要太复杂 public class xmlparsing extends UiApplication implements ListFieldCallback, FieldCha
anbody能帮我清楚地说明如何使用kxml2吗?这里是一个普通的XML解析和显示列表字段示例。。在基础阶段不要太复杂
public class xmlparsing extends UiApplication implements ListFieldCallback, FieldChangeListener
{
public static void main(String[] args)
{
xmlparsing app = new xmlparsing();
app.enterEventDispatcher();
}
public long mycolor ;
Connection _connectionthread;
private static ListField _list;
private static Vector listElements = new Vector();
public MainScreen screen = new MainScreen();
VerticalFieldManager mainManager;
VerticalFieldManager subManager;
public xmlparsing()
{
super();
pushScreen(screen);
final Bitmap backgroundBitmap = Bitmap.getBitmapResource("blackbackground.png");
mainManager = new VerticalFieldManager(Manager.NO_VERTICAL_SCROLL | Manager.NO_VERTICAL_SCROLLBAR )
{
public void paint(Graphics graphics)
{
graphics.drawBitmap(0, 0, Display.getWidth(),Display.getHeight(),backgroundBitmap, 0, 0);
super.paint(graphics);
}
};
subManager = new VerticalFieldManager(Manager.VERTICAL_SCROLL | Manager.VERTICAL_SCROLLBAR )
{
protected void sublayout( int maxWidth, int maxHeight )
{
int displayWidth = Display.getWidth();
int displayHeight = Display.getHeight();
super.sublayout( displayWidth, displayHeight);
setExtent( displayWidth, displayHeight);
}
};
screen.add(mainManager);
_list = new ListField()
{
public void paint(Graphics graphics)
{
graphics.setColor((int) mycolor);
super.paint(graphics);
}
};
mycolor = 0x00FFFFFF;
_list.invalidate();
_list.setEmptyString("* Feeds Not Available *", DrawStyle.HCENTER);
_list.setRowHeight(50);
_list.setCallback(this);
mainManager.add(subManager);
listElements.removeAllElements();
_connectionthread = new Connection();
_connectionthread.start();
}
protected boolean navigationClick(int status, int time)
{
try
{
//navigate here to another screen if you need.
}
catch(Exception e)
{
System.out.println("Exception:- : navigationClick() "+e.toString());
}
return true;
}
private class Connection extends Thread
{
public Connection()
{
super();
}
public void run() {
Document doc;
StreamConnection conn = null;
InputStream is = null;
try {
conn = (StreamConnection) Connector.open("http://timesofindia.feedsportal.com/c/33039/f/533917/index.rss"+";deviceside=true");
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
docBuilderFactory.setIgnoringElementContentWhitespace(true);
docBuilderFactory.setCoalescing(true);
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
docBuilder.isValidating();
is = conn.openInputStream();
doc = docBuilder.parse(is);
doc.getDocumentElement().normalize();
NodeList list = doc.getElementsByTagName("title");
for (int i = 0; i < list.getLength(); i++) {
Node textNode = list.item(i).getFirstChild();
listElements.addElement(textNode.getNodeValue());
}
} catch (Exception e) {
System.out.println(e.toString());
} finally {
if (is != null) {
try { is.close();
} catch (IOException ignored) {}
} if (conn != null) {
try { conn.close(); }
catch (IOException ignored) {}
} } UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
_list.setSize(listElements.size());
subManager.add(_list);
screen.invalidate();
}
});
}
}
public void drawListRow(ListField list, Graphics g, int index, int y, int w)
{
String tes = (String)listElements.elementAt(index);
int yPos = 0+y;
g.drawLine(0, yPos, w, yPos);
g.drawText(tes, 5, 15+y, 0, w);
}
public Object get(ListField list, int index)
{
return listElements.elementAt(index);
}
public int indexOfList(ListField list, String prefix, int string)
{
return listElements.indexOf(prefix, string);
}
public int getPreferredWidth(ListField list)
{
return Display.getWidth();
}
public void insert(String toInsert, int index) {
listElements.addElement(toInsert);
}
public void fieldChanged(Field field, int context) {
}
}
公共类xmlparsing扩展UiApplication实现ListFieldCallback、FieldChangeListener
{
公共静态void main(字符串[]args)
{
xmlparsing app=新的xmlparsing();
app.enterEventDispatcher();
}
公共长霉色;
连接_connectionthread;
私有静态列表字段_list;
私有静态向量列表元素=新向量();
公共主屏幕=新主屏幕();
垂直场经理主经理;
VerticalFieldManager子管理员;
公共XML解析()
{
超级();
推屏(屏幕);
最终位图背景位图=Bitmap.getBitmapResource(“blackbackground.png”);
mainManager=新的垂直字段管理器(Manager.NO_VERTICAL_SCROLL | Manager.NO_VERTICAL_SCROLLBAR)
{
公共空间绘制(图形)
{
graphics.drawBitmap(0,0,Display.getWidth(),Display.getHeight(),backgroundBitmap,0,0);
超级油漆(图形);
}
};
subManager=新的垂直字段管理器(Manager.VERTICAL_SCROLL | Manager.VERTICAL_SCROLLBAR)
{
受保护的空位子布局(int-maxWidth、int-maxHeight)
{
int displayWidth=Display.getWidth();
int displayHeight=Display.getHeight();
超级子布局(显示宽度、显示高度);
setExtent(显示宽度、显示高度);
}
};
screen.add(mainManager);
_列表=新列表字段()
{
公共空间绘制(图形)
{
graphics.setColor((int)mycolor);
超级油漆(图形);
}
};
mycolor=0x00FFFFFF;
_list.invalidate();
_list.setEmptyString(“*提要不可用*”,DrawStyle.HCENTER);
_列表。设置行高(50);
_list.setCallback(this);
mainManager.add(子管理器);
listElements.removeAllElements();
_connectionthread=新连接();
_connectionthread.start();
}
受保护的布尔导航单击(int状态,int时间)
{
尝试
{
//如果需要,请在此处导航到另一个屏幕。
}
捕获(例外e)
{
System.out.println(“异常:-:navigationClick()”+e.toString());
}
返回true;
}
私有类连接扩展线程
{
公共连接()
{
超级();
}
public void run(){
文件文件;
StreamConnection conn=null;
InputStream=null;
试试{
连接=(流连接)连接器。打开(“http://timesofindia.feedsportal.com/c/33039/f/533917/index.rss“+“deviceside=true”);
DocumentBuilderFactory docBuilderFactory=DocumentBuilderFactory.newInstance();
setIgnoringElementContentWhitespace(true);
docBuilderFactory.setCoalescing(true);
DocumentBuilder docBuilder=docBuilderFactory.newDocumentBuilder();
isValidating();
is=conn.openInputStream();
doc=docBuilder.parse(is);
doc.getDocumentElement().normalize();
节点列表=doc.getElementsByTagName(“标题”);
对于(inti=0;i
在这里。一个普通的XML解析和显示在listfield示例中。。在基础阶段不要太复杂
public class xmlparsing extends UiApplication implements ListFieldCallback, FieldChangeListener
{
public static void main(String[] args)
{
xmlparsing app = new xmlparsing();
app.enterEventDispatcher();
}
public long mycolor ;
Connection _connectionthread;
private static ListField _list;
private static Vector listElements = new Vector();
public MainScreen screen = new MainScreen();
VerticalFieldManager mainManager;
VerticalFieldManager subManager;
public xmlparsing()
{
super();
pushScreen(screen);
final Bitmap backgroundBitmap = Bitmap.getBitmapResource("blackbackground.png");
mainManager = new VerticalFieldManager(Manager.NO_VERTICAL_SCROLL | Manager.NO_VERTICAL_SCROLLBAR )
{
public void paint(Graphics graphics)
{
graphics.drawBitmap(0, 0, Display.getWidth(),Display.getHeight(),backgroundBitmap, 0, 0);
super.paint(graphics);
}
};
subManager = new VerticalFieldManager(Manager.VERTICAL_SCROLL | Manager.VERTICAL_SCROLLBAR )
{
protected void sublayout( int maxWidth, int maxHeight )
{
int displayWidth = Display.getWidth();
int displayHeight = Display.getHeight();
super.sublayout( displayWidth, displayHeight);
setExtent( displayWidth, displayHeight);
}
};
screen.add(mainManager);
_list = new ListField()
{
public void paint(Graphics graphics)
{
graphics.setColor((int) mycolor);
super.paint(graphics);
}
};
mycolor = 0x00FFFFFF;
_list.invalidate();
_list.setEmptyString("* Feeds Not Available *", DrawStyle.HCENTER);
_list.setRowHeight(50);
_list.setCallback(this);
mainManager.add(subManager);
listElements.removeAllElements();
_connectionthread = new Connection();
_connectionthread.start();
}
protected boolean navigationClick(int status, int time)
{
try
{
//navigate here to another screen if you need.
}
catch(Exception e)
{
System.out.println("Exception:- : navigationClick() "+e.toString());
}
return true;
}
private class Connection extends Thread
{
public Connection()
{
super();
}
public void run() {
Document doc;
StreamConnection conn = null;
InputStream is = null;
try {
conn = (StreamConnection) Connector.open("http://timesofindia.feedsportal.com/c/33039/f/533917/index.rss"+";deviceside=true");
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
docBuilderFactory.setIgnoringElementContentWhitespace(true);
docBuilderFactory.setCoalescing(true);
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
docBuilder.isValidating();
is = conn.openInputStream();
doc = docBuilder.parse(is);
doc.getDocumentElement().normalize();
NodeList list = doc.getElementsByTagName("title");
for (int i = 0; i < list.getLength(); i++) {
Node textNode = list.item(i).getFirstChild();
listElements.addElement(textNode.getNodeValue());
}
} catch (Exception e) {
System.out.println(e.toString());
} finally {
if (is != null) {
try { is.close();
} catch (IOException ignored) {}
} if (conn != null) {
try { conn.close(); }
catch (IOException ignored) {}
} } UiApplication.getUiApplication().invokeLater(new Runnable() {
public void run() {
_list.setSize(listElements.size());
subManager.add(_list);
screen.invalidate();
}
});
}
}
public void drawListRow(ListField list, Graphics g, int index, int y, int w)
{
String tes = (String)listElements.elementAt(index);
int yPos = 0+y;
g.drawLine(0, yPos, w, yPos);
g.drawText(tes, 5, 15+y, 0, w);
}
public Object get(ListField list, int index)
{
return listElements.elementAt(index);
}
public int indexOfList(ListField list, String prefix, int string)
{
return listElements.indexOf(prefix, string);
}
public int getPreferredWidth(ListField list)
{
return Display.getWidth();
}
public void insert(String toInsert, int index) {
listElements.addElement(toInsert);
}
public void fieldChanged(Field field, int context) {
}
}
公共类xmlparsing扩展UiApplication实现ListFieldCallback、FieldChangeListener
{
公共静态void main(字符串[]args)
{
xmlparsing app=新的xmlparsing();
app.enterEventDispatcher();
}
公共长霉色;
连接_connectionthread;
私有静态列表字段_list;
私有静态向量列表元素=新向量();
公共主屏幕=新主屏幕();
垂直场经理主经理;
VerticalFieldManager子管理员;
公共XML解析()
{
超级();
推屏(屏幕);
最终位图背景位图=Bitmap.getBitmapResource(“blackbackground.png”);
mainManager=新的垂直字段管理器(Manager.NO_VERTICAL_SCROLL | Manager.NO_VERTICAL_SCROLLBAR)
{
公共空间绘制(图形)
{
graphics.drawBitmap(0,0,Display.getWidth(),Display.getHeight(),backgroundBitmap,0,0);
超级油漆(图形);
}
};
subManager=新的垂直字段管理器(Manager.VERTICAL_SCROLL | Manager.VERTICAL_SCROLLBAR)
{
受保护的空位子布局(int-maxWidth、int-maxHeight)
{
int displayWidth=Display.getWidth();
int displayHeight=Display.getHeight();
超级子布局(显示宽度、显示高度);
setExtent(显示宽度、显示高度);
}
};
screen.add(mainManager);
_列表=新列表字段()
{
公共空间绘制(图形)
{
graphics.setColor((int)mycolor);
超级油漆(图形);
}
};
mycolor=0x00FFFFFF;
_list.invalidate();
_list.setEmptyString(“*提要不可用*”,DrawStyle.HCENTER);
_列表。设置行高(50);
_list.setCallback(this);
mainManager.add(子管理器);
listElements.removeAllElements();
_connectionthread=新连接();
_连接读取