Android 解析没有任何子节点的Xml文件

Android 解析没有任何子节点的Xml文件,android,android-xml,android-parser,Android,Android Xml,Android Parser,我是android开发的新手,我想使用Dom解析器解析一个特定的xml文件。xml结构是这样的 <Images> <image link="a.tgcdn.net/images/products/zoom/e554_android_plush_robot.jpg"/> <image link="a.tgcdn.net/images/products/zoom/e554_android_plush_robot.jpg"/> <image

我是android开发的新手,我想使用Dom解析器解析一个特定的xml文件。xml结构是这样的

<Images>
   <image link="a.tgcdn.net/images/products/zoom/e554_android_plush_robot.jpg"/>
   <image link="a.tgcdn.net/images/products/zoom/e554_android_plush_robot.jpg"/>
   <image link="http://cdn.androidpolice.com/wp-content/themes/ap1/images/android1.png"/>
   <image link="http://cdn.androidpolice.com/wp-content/themes/ap1/images/android1.png"/>
   <image link="http://cdn.androidpolice.com/wp-content/themes/ap1/images/android1.png"/>
</Images>

我想在arraylist中添加这些web链接。 给我建议一条出路。。甚至任何与此相关的链接或教程都会有所帮助。谢谢

这是完整的代码

public class MainActivity extends Activity {


    String xmlurl       = "--url of xml---";


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ArrayList<String> mImageLink = new ArrayList<String>();
        try {
            URL url = new URL(xmlurl);
            XMLParser   parser  =   new XMLParser();
            String      xml     = parser.getXMLfromUrl(url);
            Document    doc     = parser.getDomElement(xml);
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            Document doc1 = db.parse(new InputSource(url.openStream()));
            doc1.getDocumentElement().normalize();

            NodeList nodeList = doc1.getElementsByTagName("photo");

            for (int i = 0; i < nodeList.getLength(); i++) {
                Element websiteElement = (Element) nodeList.item(i);
                nodeList = websiteElement.getChildNodes();              
                mImageLink.add(websiteElement.getAttribute("link"));

            }
        } catch (Exception e) {
            System.out.println("XML Pasing Excpetion = " + e);
        }

        for(int i=0;i<mImageLink.size();i++){
            Log.d("Photo link --- " + i,mImageLink.get(i));
        }

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}
公共类MainActivity扩展活动{
字符串xmlurl=“--xml的url-->”;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayList mImageLink=新的ArrayList();
试一试{
URL=新URL(xmlurl);
XMLParser=新的XMLParser();
字符串xml=parser.getXMLfromUrl(url);
Document doc=parser.getdoElement(xml);
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
documentdoc1=db.parse(新的输入源(url.openStream());
doc1.getDocumentElement().normalize();
NodeList NodeList=doc1.getElementsByTagName(“照片”);
for(int i=0;i
    InputStream is = FileUtils.class.getResourceAsStream("file.xml");

    SAXReader reader = new SAXReader();
    org.dom4j.Document doc = reader.read(is);
    is.close();
    Element content = doc.getRootElement();  //this will return the root element in your xml file
    List<Element> methodEls = content.elements("element"); // this will retun List of all Elements with name "element" 
InputStream is=FileUtils.class.getResourceAsStream(“file.xml”);
SAXReader=新SAXReader();
org.dom4j.Document doc=reader.read(is);
is.close();
Element content=doc.getRootElement();//这将返回xml文件中的根元素
List methodEls=content.elements(“element”);//这将重新运行名为“element”的所有元素的列表

对于DOM解析,您可以使用相同的库

请使用下面的代码使用DOM解析器解析上述XML文件

public class MainActivity extends Activity {

    ArrayList<String> mImageLink;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        try {
            mImageLink = new ArrayList<String>();

            InputStream is = getResources().openRawResource(R.raw.temp);
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
            Document doc = db.parse(new InputSource(is));
            doc.getDocumentElement().normalize();

            NodeList nodeList = doc.getElementsByTagName("image");

            for (int i = 0; i < nodeList.getLength(); i++) {

                Node node = nodeList.item(i);

                Element fstElmnt = (Element) node;

                mImageLink.add(fstElmnt.getAttribute("link"));

            }
        } catch (Exception e) {
            System.out.println("XML Pasing Excpetion = " + e);
        }
    }
}
公共类MainActivity扩展活动{
阵列列表镜像链接;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
试一试{
mImageLink=newarraylist();
InputStream is=getResources().openRawResource(R.raw.temp);
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
Document doc=db.parse(新输入源(is));
doc.getDocumentElement().normalize();
NodeList NodeList=doc.getElementsByTagName(“图像”);
for(int i=0;i
有关更多信息,请参阅下面的链接


这里是作业:@NitinBathija看我的答案可能是它会解决你的问题。它不会显示任何输出。只是一个空白屏幕。我在清单中也添加了互联网权限。我只是遵循了你在更改上面提到的要求更改后建议的相同教程,即使在该教程中,我们中也有一个人如果你能看到代码下面的注释,也就是在你的同一链接上,你也会遇到同样的问题。@NitinBathija如果你正在寻找解决方案,那么就发布你的代码。我已经发布了我的代码。.检查一下,xml文件有这样的URL。@NitinBathija你的xml文件URL在哪里?