Php 删除字符串中的嵌套html元素

Php 删除字符串中的嵌套html元素,php,jquery,html,regex,string,Php,Jquery,Html,Regex,String,我使用API检索特定应用程序中所有webforms的HTML。问题是返回的HTML包含、和标记,但我所需要的只是(还有一个onsubmit属性,但我相当确定我可以处理这一点) 我能够用一些聪明的正则表达式删除样式标记,但我不确定如何从和标记中间删除 到目前为止,这一切都发生在PHP中。我想有可能对字符串进行json\u编码,然后将其传递给JS,然后使用jQuery来getJSON?不过,我仍然不是100%清楚如何做到这一点 我返回的php字符串的示例 <html width="100%"

我使用API检索特定应用程序中所有webforms的HTML。问题是返回的HTML包含
标记,但我所需要的只是
(还有一个
onsubmit
属性,但我相当确定我可以处理这一点)

我能够用一些聪明的正则表达式删除样式标记,但我不确定如何从
标记中间删除

到目前为止,这一切都发生在PHP中。我想有可能对字符串进行
json\u编码
,然后将其传递给JS,然后使用jQuery来
getJSON
?不过,我仍然不是100%清楚如何做到这一点

我返回的php字符串的示例

<html width="100%" height="100%">
  <body class="body stuff">
    <form>
      <input type="text" name="input">
      <input type="text" name="anotherInput">
    </form>
  </body>
</form>

我只想从这个字符串中得到
,尽管

<?
$regex = "/<form>(.*?)<\/form>/s";
preg_match($regex,$string,$match);
print_r($match);
?>
结果应该是这样的:

Array
(
    [0] => <form>
      <input type="text" name="input">
      <input type="text" name="anotherInput">
    </form>
    [1] => 
      <input type="text" name="input">
      <input type="text" name="anotherInput">

)
数组
(
[0] => 
[1] => 
)
然后您需要的是
$match[1]

您可以使用它将字符串转换为DOM对象

然后追加或使用查找所需的任何对象。此外,当您使用时,它会自动删除
标记,只保留文档内部

var string = '<html width="100%" height="100%"><body class="body stuff"><form><input type="text" name="input"><input type="text" name="anotherInput"></form></body></html>';

var htmlObject = $.parseHTML(string);
$('body').append( htmlObject );
var字符串=“”;
var htmlObject=$.parseHTML(字符串);
$('body').append(htmlObject);
这是我整理的一个简单例子

编辑


在中,您可以看到通过对象的方法循环,并将
节点名
附加到无序列表中。这就是如何验证是否确实从对象中删除了

您是否尝试过使用
DOMDocument
?由于表单标记本身的一些额外属性
“/(*?)/is”
,我不得不稍微修改一下正则表达式,但最终效果很好。谢谢出于某种原因,我还不得不使用
preg\u match\u all
,我不完全理解