0

我对 php 中的 html 字符串有疑问

我想检测字符串是否包含<tbody>,如果是,则用<table></table>标签包裹

我的字符串将类似于:

<tbody>
   <tr>
      <td>cell</td>
      <td>cell</td>
   </tr>
   <tr>
       <td>cell</td>
      <td>cell</td>
   </tr>
</tbody>

问题不是每个字符串都包含<tbody>,我需要检测它是否有<tbody>标签

我只需要将字符串包装起来,<table>以便将电子邮件发送给客户。

谢谢您的帮助!

4

2 回答 2

2

使用DOMDocumentDOMXPath

<?php
$dom = new DOMDocument();
$dom->loadHTML("<tbody>
   <tr>
      <td>cell</td>
      <td>cell</td>
   </tr>
   <tr>
       <td>cell</td>
      <td>cell</td>
   </tr>
</tbody>");

$xpath = new DOMXpath($dom);
$result = $xpath->query('//tbody');

if ($result->length > 0) {
    //tbody found
}

?>

现场观看!

于 2013-08-25T21:38:24.963 回答
1

请看一下SimpleXML,它允许加载、操作和保存 XML:

示例用法[样本来源]

<?php
include 'example.php';
$xml = new SimpleXMLElement($xmlstr);

$character = $xml->movie[0]->characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $xml->movie[0]->addChild('rating', 'PG');
$rating->addAttribute('type', 'mpaa');

echo $xml->asXML();
?>

根据这些数据:

 <?xml version='1.0' standalone='yes'?>
  <movies>
   <movie>
    <title>PHP: Behind the Parser</title>
    <characters>
      <character>
        <name>Ms. Coder</name>
        <actor>Onlivia Actora</actor>
        </character>
      <character>
        <name>Mr. Coder</name>
        <actor>El Act&#211;r</actor>
      </character>
     </characters>
    </movie>
   <movies>

SimpleXML 的DOM 方法也可能很有趣。

于 2013-08-25T21:32:16.290 回答