Android中如何序列化XML? [英] How can Serialize XML in Android?

查看:114
本文介绍了Android中如何序列化XML?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我得到在 XML 格式的肥皂 Serivce文字,现在我想分割图像标记,并在不同的序列化格式的视频标签。

我的文字:

 <图像及GT;
<图像ImageID =1000032StoredFilename =42825125-8002-4d28-ba90-9889de5e4e91.jpgImageName =bPanda/>< /图片>
<播放列表和GT;<播放列表PlayListID =1000005/>
< /播放列表和GT;< PlayListVideoXrefs>
&所述; PlayListVideoXref PlayListVideoXrefID =1000027PlayListID =1000005视频ID =1000006PlayOrder =1/>
&所述; PlayListVideoXref PlayListVideoXrefID =1000028PlayListID =1000005视频ID =1000003PlayOrder =2/>
< / PlayListVideoXrefs><影片及GT;
<视频视频ID =1000006StoredFilename =c0739234-b844-46c9-b1b2-96b55f70e17e.mp4VideoName =巴塞罗那/>
<视频视频ID =1000003StoredFilename =50acb2ee-810A-4c32-b097-40c87d253e25.mp4VideoName =bVideo1/>
< /视频>

我分裂使用正则表达式的形象和它不工作:

 模式P = Pattern.compile(<图片[^>] *方式>(*)<?/图片>);
匹配M = p.matcher(_strUrl);
ArrayList的<串GT; list_Images =新的ArrayList<串GT;();尝试{
    而(m.find()){
        的System.out.println(m.group(1));
        list_Images.add(m.group(1));    }
}赶上(例外五){
    // TODO:处理异常
    Toast.makeText(getApplicationContext(),e.​​getMessage()的toString(),1)。.show();
}


解决方案

要捕捉图片部分,那么你可能需要转义斜杠

(。*?)

<图片[^>] * GT< \\ /图片> ,活生生的例子: http://www.rubular.com/r/h5TZdE5nyb

要分析每个属性的单个图像标签:

\\ s([^ =] *)=([^] *),活生生的例子: http://www.rubular.com/r/eiTS7cpY5p

I'm getting a text in XML Format with Soap Serivce and now I want to split an Image tag and a Video Tag in different Serialize format.

My text :

<Images> 
<Image ImageID="1000032" StoredFilename="42825125-8002-4d28-ba90-9889de5e4e91.jpg" ImageName="bPanda"  /></Images>
<PlayLists><PlayList PlayListID="1000005"  />
</PlayLists><PlayListVideoXrefs>
<PlayListVideoXref PlayListVideoXrefID="1000027" PlayListID="1000005" VideoID="1000006" PlayOrder="1"  />
<PlayListVideoXref PlayListVideoXrefID="1000028" PlayListID="1000005" VideoID="1000003" PlayOrder="2"  />
</PlayListVideoXrefs>

<Videos>
<Video VideoID="1000006" StoredFilename="c0739234-b844-46c9-b1b2-96b55f70e17e.mp4" VideoName="barcelona"  />
<Video VideoID="1000003" StoredFilename="50acb2ee-810a-4c32-b097-40c87d253e25.mp4" VideoName="bVideo1"  />
</Videos>

I split the Image using Regex and it's not working at all :

Pattern p = Pattern.compile("<Images[^>]*>(.*?)</Images>");
Matcher m = p.matcher(_strUrl);
ArrayList<String> list_Images = new ArrayList<String>();

try {
    while (m.find()) {
        System.out.println(m.group(1));
        list_Images.add(m.group(1));

    }
} catch (Exception e) {
    // TODO: handle exception
    Toast.makeText(getApplicationContext(), e.getMessage().toString(), 1).show();
}

解决方案

To capture the images section then you'll probably need to escape the forward slash

<Images[^>]*>(.*?)<\/Images>, Live example: http://www.rubular.com/r/h5TZdE5nyb

To parse each of the attributes in a single image tag:

\s([^=]*)="([^"]*)", Live example: http://www.rubular.com/r/eiTS7cpY5p

这篇关于Android中如何序列化XML?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆