在这里,我正在使用xpath成功解析xml文件。但输出并不像我预期的那样。我在这里做的是将.xml解析为列表视图。列表视图显示已解析的数据但不是以正确的方式。下面是我的.xml文件,
<main>
<category id="Love">
<item>Love u</item>
<item>Love u too</item>
</category>
<category id="Birthday">
<item>Happy Bday</item>
<item>Many Many Happy</item>
<item>Have a blast</item>
</category>
</main>
下面是我提供输出的代码。
InputSource inputSrc = new InputSource(getResources().openRawResource(R.raw.detail));
XPath xpath = XPathFactory.newInstance().newXPath();
String expression = "//main/category[@id=" + "'" + detail + "'" + "]";
NodeList nodes = (NodeList)xpath.evaluate(expression, inputSrc, XPathConstants.NODESET);
// if node found
if(nodes != null && nodes.getLength() > 0) {
mDetail.clear();
data.clear();
int len = nodes.getLength();
for(int i = 0; i < len; ++i) {
Node node = nodes.item(i);
mDetail.add(node.getTextContent());
Toast.makeText(this, node.getNodeValue(),Toast.LENGTH_SHORT).show();
}
}
else
{
Toast.makeText(this, "No Data",Toast.LENGTH_SHORT).show();
mDetail.clear();
}
但在这里,我没有以适当的方式获得输出。列表视图显示数据,但是在单行中,如下图所示。
我想要indib = vidual列表视图中的数据。我错过了什么?
答案 0 :(得分:1)
String expression = "//main/category[@id=" + "'" + detail + "'" + "]" + "/item";
改变你的表达......