这是我的XML文件的一个例子:
<?xml version="1.0" encoding="utf-8"?>
<assurances>
<assurance hasReference="true">
<message>You're Awesome!</message>
<reference>Genesis 1:26</reference>
</assurance>
<assurance hasReference="true">
<message>Your Wonderfull!</message>
<reference>Genesis 1:26</reference>
</assurance>
</assurances>
Run Code Online (Sandbox Code Playgroud)
我正在使用这样的代码来尝试检索它:
int eventType = -1;
while(eventType != XmlResourceParser.END_DOCUMENT)
{
XmlResourceParser assurances = getResources().getXml(R.xml.assurances);
String name = assurances.getText();
Log.d(TAG, name);
try {
if (assurances.getEventType() == XmlResourceParser.START_TAG) {
String s = assurances.getName();
if (s.equals("assurance")) {
String strMessage = assurances.getAttributeValue(null, "message");
String strReference = assurances.getAttributeValue(null, "reference");
Log.d(TAG, strMessage);
Log.d(TAG, strReference);
}
}
} catch (XmlPullParserException e) {
// TODO Auto-generated catch block
e.printStackTrace(); …Run Code Online (Sandbox Code Playgroud) 我在javascript中查找了这个基本格式的树结构:
function Tree(parent, child, data) {
this.parent = parent;
this.children = child || [];
this.data = data;
this.addNode ...
this.addChild ...
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是制作一棵"长"的树.我正在使用的数据是一条路径上的街道列表,这条路径几乎是一条直线路径,但是在路径中有一些小的分裂,数据看起来像:
A ->
B ->
C ->
D -> E,F
E ->
G ->
H
F -> I
I -> J
J -> K,L
K ->
M ->
N
L -> O
O -> P
Run Code Online (Sandbox Code Playgroud)
我想避免看起来像这样的代码:
tree.children[0].children[0].children[0].addNode("E");
tree.children[0].children[0].children[0].push("F");
Run Code Online (Sandbox Code Playgroud)
所以我的一个问题是如何遍历树,简单地说?
node = tree;
while(node.children != null)
node = node.children[0];
Run Code Online (Sandbox Code Playgroud)
如果你可以帮助我,我会很感激,谢谢,
mathacka