Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 我需要在Parse.com';s云代码_Regex_Parse Platform - Fatal编程技术网

Regex 我需要在Parse.com';s云代码

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

请不要评论说你不能用正则表达式解析XML,这是可以做到的,但这不是最好的方法。请不要无缘无故否定这个问题

在Parse.com的云代码中,如果不进行大量的编码工作,您目前无法将XML转换为json。我在以下位置找到了以下代码:


我的猜测是——看看结果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>"