前些天,有朋友在问,为什么这个XML中的数据用Power Query里的“分析-XML”功能提取不出来?
其实,显示这个错误的意思就是:这个不是标准的XML,Power Query里自然也不能准确识别。因为,标准的XML大概有以下两种表示形式(名称是我自己起的,可能不专业,仅为易于理解):
1、元素嵌套式
2、属性罗列式
那么,对于问题中的格式,虽然看起来有点儿像属性的罗列式,但实际上又将每个元素(fromAcct.actNo……)进行了罗列,而用了同一个属性(a),所以,类似这种规则比较明显(某些系统开发过程中按需要自定义的格式)而又不是规范XML的情况,如果要用Power Query来提取其中的数据,除了考虑用比较麻烦的多次分列方法外,还可以想办法将其转换成标准的XML格式,具体步骤参考如下:
Step 01将其中的" a"(空格+a)替换为空
Step 02将其中原各元素之间的分割符号替换为空
Step 03通过替换起始符号的方式给内容加上元素名称
这样,我们就将原来分割成多个元素的非标准XML转变成了一个元素多个属性罗列在一起的XML,前后对比如下图所示:
经过这样的替换转换成标准的XML格式后,就可以用“分析-XML”功能来进行数据的提取了:
另外还有Json格式的内容也可能会有类似的情况,大都可以通过类似的思路进行转换后来进行数据的提取。
联系客服