Regex 我需要在Parse.com';s云代码
请不要评论说你不能用正则表达式解析XML,这是可以做到的,但这不是最好的方法。请不要无缘无故否定这个问题 在Parse.com的云代码中,如果不进行大量的编码工作,您目前无法将XML转换为json。我在以下位置找到了以下代码:Regex 我需要在Parse.com';s云代码,regex,parse-platform,Regex,Parse Platform,请不要评论说你不能用正则表达式解析XML,这是可以做到的,但这不是最好的方法。请不要无缘无故否定这个问题 在Parse.com的云代码中,如果不进行大量的编码工作,您目前无法将XML转换为json。我在以下位置找到了以下代码: 我的猜测是——看看结果json的结构——应该没有属性。要对它们进行授权,您需要做很多更改,包括嵌套嵌套的json… 难道不可能改变一下吗: <products total-matched="1618" records-returned="1" page-number
我的猜测是——看看结果json的结构——应该没有属性。要对它们进行授权,您需要做很多更改,包括嵌套嵌套的json…
难道不可能改变一下吗:
<products total-matched="1618" records-returned="1" page-number="1">
到
1618
1.
1.
...
…因为它将为您提供您所期望的属性(我猜)
至于连字符,您的想法很好,只需将\w更改为[\w-],它应该会起作用(我很乐意承认我没有查看所有正则表达式,所以这只是一个猜测)\w+将变成[\w-]+等等
编辑:
您可以添加一个步骤来首先更改xml。此正则表达式应完成以下部分:
/(<\w+[^<]*?)\s+([\w-]+)="([^"]+)">/
// asuming there is no " in your attributes' values (would be more complicated...)
/($3');
结果:
"<api><products><total-matched>1618</total-matched><records-returned>1</records-returned><page-number>1</page-number>"
“161811”
这是数据馈送给我的方式。如果我想不出什么,我就搜索并替换这些项目。这不会很糟糕,因为它们在数据提要中只显示一次。这很好,我还有一个问题,我想这会满足我的问题。我在这里提出了一个新问题:如果您使用的是低于标准的解决方案,不要期望它在任何输入上都能正常工作。就连这个网站也声称只在“各种简单的XML”上工作。依我看,这是一个不错的解决方案,只需要tweeked。让它工作。它可能不会满足每个人的需求,但我对正则表达式的理解有限,所以我能够让它真正接近我的需求。你应该明白,总有一天它会咬到你。不管怎样,预期的输出是什么?忽略属性?还是将其作为原始元素的子元素?
<products total-matched="1618" records-returned="1" page-number="1">
<products>
<total-matched>1618</total-matched>
<records-returned>1</records-returned>
<page-number>1</page-number>
<product>...
/(<\w+[^<]*?)\s+([\w-]+)="([^"]+)">/
// asuming there is no " in your attributes' values (would be more complicated...)
var string = '<api><products total-matched="1618" records-returned="1" page-number="1">';
var regex = /(<\w+[^<]*?)\s+([\w-]+)="([^"]+)">/;
while(string.match(regex)) string = string.replace(regex, '$1><$2>$3</$2>');
"<api><products><total-matched>1618</total-matched><records-returned>1</records-returned><page-number>1</page-number>"