我有一个JS代码读取div的内容并返回字符串数据。 比我想读这个并转换为XML
首先将<
转换为<
和>
转换为>
,而不是从html获取字符串:
XmlData = String(ExternalInterface.call("ReadXmlContent"));
创建XML:
bookxml = new XML(XmlData);
aaaa.htmlText +="bookxml "+ bookxml.toXMLString() + " <br>" // shows complete xml
aaaa.htmlText +="length"+ bookxml.content.page.length() + " <br>"; // shows : 0
显示完整的xml但无法读取xml节点。
感谢您的帮助。
答案 0 :(得分:0)
抱歉英语不好。 感谢@Anton提出的有用的问题 解决方案:
我的Xml节点:
<MediaObject Title='name' MediaObjectID='14' X1='42,00' Y1='3,00' X2='72,00' Y2='31,00' MediaType='video'/>
<MediaObject Title='name' MediaObjectID='15' X1='3,00' Y1='3,00' X2='34,00' Y2='31,00' MediaType='video'/>
如果您在div中使用xml节点,浏览器会将其转换为:
<mediaobject title='name' mediaobjectid='14' x1='42,00' y1='3,00' x2='72,00' y2='31,00' mediatype='video'>
<mediaobject title='name' mediaobjectid='15' x1='3,00' y1='3,00' x2='34,00' y2='31,00' mediatype='video'></mediaobject></mediaobject>
浏览器更改节点,并将节点名称和属性转换为小写。
解决方案: 使用xml作为下面的值并阅读它。因此浏览器不会添加节点,也不会将节点名称/属性更改为小写。不要忘记使用带有“'”的属性值:
<input type="hidden" name="xmldata" id="xmldata" value="<Contents><Content PreviousContentID='30' PreviousContentName='aaa' NextContentID='28' NextContentName='aaa'><Page Number='3' RelativePath='images/res1.jpg' AbsolutePath='a.net'><MediaObject Title='aaa' MediaObjectID='58' X1='38,64' Y1='50,37' X2='54,06' Y2='54,25' MediaType='link'></MediaObject><MediaObject Title='aaa' MediaObjectID='58' X1='8,43' Y1='2,27' X2='33,12' Y2='24,31' MediaType='link'></MediaObject></Page></Content></Contents>">
如果你想在div里面使用: 将节点名称和属性用作小写, 不要使用这样的行:
<mediaobject title='name' mediaobjectid='14' x1='42,00' y1='3,00' x2='72,00' y2='31,00' mediatype='video'/>
将其更改为:
<mediaobject title='name' mediaobjectid='14' x1='42,00' y1='3,00' x2='72,00' y2='31,00' mediatype='video'></mediaobject>