在线XML解析器元素
问题描述:
我了,这里是我的XML在线XML解析器元素
<XMLFILE>
<PublishTime>2016-04-30 15:03:40</PublishTime>
<Days>
<day>
<Name>Day 1</Name>
<absentPeople>
<Absent>
<Description>Nothing</Description>
<FullName>Jack Sparrow</FullName>
</Absent>
</absentPeople>
<day>
<Name>Day 2</Name>
<absentPeople>
<Absent>
<Description>Nothing</Description>
<FullName>Nobody</FullName>
</Absent>
</absentPeople>
</Days>
我可以读的日子所有的名字,有人可以帮我看没有人的名字吗?要阅读我使用此代码的名称:
Textview.setText(textview.getText()+“Naam:” + getNode(“Name”,eElement)+“\ n”+“\ n”+“\ n“+”\ n“);
public class MainActivity extends Activity {
// Declare variables
TextView textview;
NodeList nodelist;
ProgressDialog pDialog;
// Insert image URL
String URL = "url of xml";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get the view from activity_main.xml
setContentView(R.layout.activity_main);
// Locate a TextView in your activity_main.xml layout
textview = (TextView) findViewById(R.id.text);
// Execute DownloadXML AsyncTask
new DownloadXML().execute(URL);
}
// DownloadXML AsyncTask
private class DownloadXML extends AsyncTask<String, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
// Create a progressbar
pDialog = new ProgressDialog(MainActivity.this);
// Set progressbar title
pDialog.setTitle("Android Simple XML Parsing using DOM Tutorial");
// Set progressbar message
pDialog.setMessage("Loading...");
pDialog.setIndeterminate(false);
// Show progressbar
pDialog.show();
}
@Override
protected Void doInBackground(String... Url) {
try {
URL url = new URL(Url[0]);
DocumentBuilderFactory dbf = DocumentBuilderFactory
.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
// Download the XML file
Document doc = db.parse(new InputSource(url.openStream()));
doc.getDocumentElement().normalize();
// Locate the Tag Name
nodelist = doc.getElementsByTagName("day");
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void args) {
for (int temp = 0; temp < nodelist.getLength(); temp++) {
Node nNode = nodelist.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
textview.setText(textview.getText() + "Naam : "
+ getNode("Name", eElement) + "\n" + "\n" + "\n"
+ "\n");
}
}
// Close progressbar
pDialog.dismiss();
}
}
// getNode function
private static String getNode(String sTag, Element eElement) {
NodeList nlList = eElement.getElementsByTagName(sTag).item(0)
.getChildNodes();
Node nValue = (Node) nlList.item(0);
return nValue.getNodeValue();
}
}
感谢反正。
答
你已经知道如何。
当您的<day>
元素位于eElement
变量中时,您正在使用eElement.getElementsByTagName("Name")
来查找<Name>
标记。
同样,你可以做eElement.getElementsByTagName("Absent")
找到所有的后代<Absent>
标签,重复它们,然后打电话getNode("FullName", ...)
。