如何替换第二次出现的字符串?

时间:2014-06-13 15:32:35

标签: javascript

我有以下字符串:

<Openings>
<opening><item><x>3</x><y>3</y><width>10.5</width><height>13.5</height><type>rectangle</type><clipX>0</clipX><clipY>0</clipY><imgsrc></imgsrc></item></opening>
<opening><item><x>3</x><y>3</y><width>10.5</width><height>13.5</height><type>rectangle</type><clipX>0</clipX><clipY>0</clipY><imgsrc></imgsrc></item></opening>
</Openings> 

基于以下值,例如1,我想替换第二组<imgsrc></imgsrc>(它基于0,所以第一组是索引0,等等。)

所以我想要的以下输出是变量opening = 1是:

<Openings>
<opening><item><x>3</x><y>3</y><width>10.5</width><height>13.5</height><type>rectangle</type><clipX>0</clipX><clipY>0</clipY><imgsrc></imgsrc></item></opening>
<opening><item><x>3</x><y>3</y><width>10.5</width><height>13.5</height><type>rectangle</type><clipX>0</clipX><clipY>0</clipY><imgsrc>myimage</imgsrc></item></opening>
</Openings> 

1 个答案:

答案 0 :(得分:1)

您可以使用DOMParser

var parser = new DOMParser();
var doc    = parser.parseFromString(XMLstring, "application/xml");

doc.getElementsByTagName('imgsrc')[1].innerHTML = 'myimage';

FIDDLE

修改

您可以使用序列化程序将XML序列化为字符串

var serializer = new XMLSerializer();
var XMLString = serializer.serializeToString(doc);

FIDDLE