[转]输出的Xml里面<都变成< >都变成>如何还原

[转]输出的Xml里面<都变成&lt; >都变成&gt;怎么还原?

http://bbs.9ria.com/thread-77468-1-1.html

 

 

 

本帖最后由 鸩羽千夜 于 2011-3-30 11:56 编辑

我有一个XML,通过这个XML读取本地的图片,到一个编辑器里面去,在编辑器里,我可以根据图片的上下位置改动,动态调整,XML里面对应的那一项的顺序.
XML(curXML)如下..
  1. <pages dragStep="20" wheelStep="50" walkStep="20" allowScale="true" scaletofit="true">
  2. <page url="pics/1/001.jpg"/>
  3. <page url="pics/1/002.jpg"/>
  4. <page url="pics/1/003.jpg"/>
  5. <page url="pics/1/004.jpg"/>
  6. <page url="pics/1/005.jpg"/>
  7. <page url="pics/1/006.jpg"/>
  8. <page url="pics/1/007.jpg"/>
  9. <page url="pics/1/008.jpg"/>
  10. <page url="pics/1/009.jpg"/>
  11. <page url="pics/1/010.jpg"/>
  12. <page url="pics/1/011.jpg"/>
  13. <page url="pics/1/012.jpg"/>
  14. <page url="pics/1/013.jpg"/>
  15. <page url="pics/1/014.jpg"/>
  16. <page url="pics/1/015.jpg"/>
  17. <page url="pics/1/016.jpg"/>
  18. <page url="pics/1/017.jpg"/>
  19. <page url="pics/1/018.jpg"/>
  20. <page url="pics/1/019.jpg"/>
  21. <page url="pics/1/020.jpg"/>
  22. </pages>
复制代码
我把里面的page全部读取到数组listduplicateArr,排好后,删掉curXML里面的所有page,
  1. delete curXml.page;
复制代码
然后把数组里面的那些page再填进来
  1. for(var ii:int=listduplicateArr.length-1;ii>=0;ii--)
  2.                         {
  3.                                 curXml.insertChildAfter(null,listduplicateArr[ii]);
  4.                         }
复制代码
然后trace下,
  1. trace("当前curXml的内容是: "+'\n'+curXml.toXMLString());
复制代码
输出是:
  1. 当前curXml的内容是: 
  2. <pages dragStep="20" wheelStep="50" walkStep="20" allowScale="true" scaletofit="true">
  3.   &lt;page url="pics/1/001.jpg"/&gt;
  4.   &lt;page url="pics/1/003.jpg"/&gt;
  5.   &lt;page url="pics/1/002.jpg"/&gt;
  6.   &lt;page url="pics/1/004.jpg"/&gt;
  7.   &lt;page url="pics/1/005.jpg"/&gt;
  8.   &lt;page url="pics/1/006.jpg"/&gt;
  9.   &lt;page url="pics/1/007.jpg"/&gt;
  10.   &lt;page url="pics/1/008.jpg"/&gt;
  11.   &lt;page url="pics/1/009.jpg"/&gt;
  12.   &lt;page url="pics/1/010.jpg"/&gt;
  13.   &lt;page url="pics/1/011.jpg"/&gt;
  14.   &lt;page url="pics/1/012.jpg"/&gt;
  15.   &lt;page url="pics/1/013.jpg"/&gt;
  16.   &lt;page url="pics/1/014.jpg"/&gt;
  17.   &lt;page url="pics/1/015.jpg"/&gt;
  18.   &lt;page url="pics/1/016.jpg"/&gt;
  19.   &lt;page url="pics/1/017.jpg"/&gt;
  20.   &lt;page url="pics/1/018.jpg"/&gt;
  21.   &lt;page url="pics/1/019.jpg"/&gt;
  22.   &lt;page url="pics/1/020.jpg"/&gt;
  23. </pages>
复制代码
然后这么输出的话
  1. trace(curXml.page);        trace(curXml.children());
复制代码
结果是
  1. **这里是一个空行*****
  2. <page url="pics/1/001.jpg"/><page url="pics/1/003.jpg"/><page url="pics/1/002.jpg"/><page url="pics/1/004.jpg"/><page url="pics/1/005.jpg"/><page url="pics/1/006.jpg"/><page url="pics/1/007.jpg"/><page url="pics/1/008.jpg"/><page url="pics/1/009.jpg"/><page url="pics/1/010.jpg"/><page url="pics/1/011.jpg"/><page url="pics/1/012.jpg"/><page url="pics/1/013.jpg"/><page url="pics/1/014.jpg"/><page url="pics/1/015.jpg"/><page url="pics/1/016.jpg"/><page url="pics/1/017.jpg"/><page url="pics/1/018.jpg"/><page url="pics/1/019.jpg"/><page url="pics/1/020.jpg"/>
复制代码
请问到底是哪里出了问题,我还能还原吗?


最佳答案 [转]输出的Xml里面<都变成&lt; >都变成&gt;如何还原
zystudios
这个是由于html解析造成的,xml的编码格式要对应,实在不行用replace把&gt替换成>

或者试试xml的usecodepage








这个是由于html解析造成的,xml的编码格式要对应,实在不行用replace把&gt替换成>

或者试试xml的usecodepage

 

 

 

 

 

 

 

 

 

 

自己解决了,方法是有点笨:直接把最后这个怪怪的XML,赋给一个string,在这个string里执行正则relace,然后再把string,以XML形式赋给XML。
  1. var mystring:String=curXml.toXMLString();
  2.                         var leftPattern:RegExp=/&lt;/g;
  3.                         var rightPattern:RegExp=/&gt;/g;
  4.                         mystring=mystring.replace(leftPattern,"<");
  5.                         mystring=mystring.replace(rightPattern,">");
  6.                         curXml=new XML(mystring);
复制代码