HarmonyOS 使用convertXML.convertToJSObject()api遇到解析错误问题

在使用该api去解析部分html文本的时候有时候可以正确获取到结果如:

文本内容为 
  <font color='#6D7685'>离店奖励</font> 
  可得到结果 
{"elements":[{"type":"element","name":"font","attributes":{"color":"#6D7685"},"elements":[{"type":"text","text":"离店奖励"}]}]} 
 
或文本为: 
<font color='#3B5A98'>支付后可在 <font color='#C50000'>2024年05月13日 18点前</font> 免费取消</font> 
  可得到结果: 
{"elements":[{"type":"element","name":"font","attributes":{"color":"#3B5A98"},"elements":[{"type":"text","text":"支付后可在 "},{"type":"element","name":"font","attributes":{"color":"#C50000"},"elements":[{"type":"text","text":"2024年05月13日 18点前"}]},{"type":"text","text":" 免费取消"}]}]} 
 
但文本为: 
<font color="#3B5A98">支付后可在</font><font color="#C50000">2024年05月13日 18点前</font><font color="#3B5A98">免费取消</font> 
  就只能获取到: 
{"elements":[{"type":"element","name":"font"},{"type":"element","name":"font"},{"type":"element","name":"font"}]}
HarmonyOS
4天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

可以将ConvertOptions中的下面部分改为false,就可以正常解析了。

ignoreDeclaration: false, 
ignoreInstruction: false, 
ignoreAttributes: false, 
ignoreComment: false, 
ignoreCDATA: false, 
ignoreDoctype: false,

​具体可以参考文档:​https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkts/js-apis-convertxml.md#convertoptions

该问题是因为:

<font color="#3B5A98">支付后可在</font><font color="#C50000">2024年05月13日 18点前</font><font color="#3B5A98">免费取消</font>

这一段xml的三个标签为同级关系,缺少了一个根节点进行包裹,导致convertToJSObject在解析parentKey时失败,无法继续解析后续节点,因此,传入的xml片段应该有一个根节点包裹以下子节点,这样convertToJSObject就能正常解析了。

分享
微博
QQ
微信
回复
4天前
相关问题
HarmonyOS关于API使用问题
245浏览 • 1回复 待解决
HarmonyOS json的解析问题
251浏览 • 1回复 待解决
HarmonyOS使用json解析报错
640浏览 • 2回复 待解决
HarmonyOS 使用MMKV库时遇到Warning
270浏览 • 1回复 待解决
应用导航设计遇到问题
168浏览 • 1回复 待解决
DevEco补全问题,有遇到的吗?
6243浏览 • 1回复 待解决
HarmonyOS TextInput组件错误样式问题
342浏览 • 1回复 待解决
鸿蒙js开发 video遇到问题
6405浏览 • 1回复 待解决
openharmony编译安装hb前遇到问题
7351浏览 • 1回复 待解决
HarmonyOS API调用崩溃问题
305浏览 • 1回复 待解决
HarmonyOS 服务端JSON字符串解析问题
380浏览 • 1回复 待解决
嵌套JSON字符串解析问题
1858浏览 • 1回复 待解决
SQL解析问题有知道的吗?
2965浏览 • 1回复 待解决
提问
该提问已有0人参与 ,帮助了0人