У меня есть XML (на самом деле String
), и я хочу найти все теги, которые содержат атрибуты width
и height
и изменить их значения.Изменить значения атрибутов xml с помощью XmlPullParser
пример XML:
<div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-b5iKjQ5ivZQ/VOoBX9NinU3232I/AAAAAAAADZU332/zq3apERWFms/s800/IMG_3426.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;">
<img border="0" height="426" src="http://1.bp.blogspot.com/-b5iKjQ5ivZQ/VOoBX9NinUI/AAAAAAAADZU/zq32323apERWFms/s800/IMG_3426.JPG" width="640" />
</a>
</div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/sI9Qf7UmXl0" width="420"></iframe>
</div>
В приведенном выше примере я хочу изменить:
- 426 и 640 значений
- 560 и 315 значений
Я был в состоянии идентифицировать некоторые из значений с помощью XmlPullParser
: код ниже идентифицирует 426 и 640 значений, но не 560 и 315. Кроме того, я не знаю, как изменить их в XML:
public void parse(String inputString) throws XmlPullParserException, IOException {
XmlPullParser parser = Xml.newPullParser();
parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
parser.setInput(new StringReader(inputString));
parser.nextTag();
readXml(parser);
}
private void readXml(XmlPullParser parser) throws XmlPullParserException, IOException {
int eventType = parser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
switch (eventType) {
case XmlPullParser.START_TAG:
break;
case XmlPullParser.END_TAG:
String h = parser.getAttributeValue(null, "height");
String w = parser.getAttributeValue(null, "width");
if (!TextUtils.isEmpty(h) && !TextUtils.isEmpty(w)) {
// TODO: need to change here h and w values in XML
}
break;
}
eventType = parser.next();
}
}
Вы пробовали с получением и установкой недвижимости? – king
Является ли ваш пример xml полным, я не видел 560. –
560 на самом деле 420. Извините за недоразумение – Paul