如何在Android中序列化XML?
我用Soap服务获得XML格式的文本,现在我想用不同的序列化格式拆分图像标记和视频标记 我的文本:如何在Android中序列化XML?,android,xml,regex,Android,Xml,Regex,我用Soap服务获得XML格式的文本,现在我想用不同的序列化格式拆分图像标记和视频标记 我的文本: <Images> <Image ImageID="1000032" StoredFilename="42825125-8002-4d28-ba90-9889de5e4e91.jpg" ImageName="bPanda" /></Images> <PlayLists><PlayList PlayListID="1000005" />
<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>
我使用正则表达式分割图像,但它根本不起作用:
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();
}
我认为Dom不能用于我的XML,因为图像标记包含用于显示图像的信息。我只是将图像和视频标记分成两个数组。 对于Split,使用regex可以很小心地工作,但我希望访问图像标记中的字段。例如:
<Image ImageID="1000032" **StoredFilename**="42825125-8002-4d28-ba90-9889de5e4e91.jpg" ImageName="bPanda" /></Images>
此标记包括StoredFileName,它将其拆分为数组以捕获图像部分,然后可能需要转义正斜杠
]*>*?,现场示例:
要分析单个图像标记中的每个属性,请执行以下操作:
\s[^=]*=[^]*,实例:不要使用正则表达式读取XML。使用DOM或SAX解析器。你能给我简单的解释吗?谷歌在android中解析XML——你会得到数百个。不要偷懒。