【问题标题】:Get HTML from XML tag从 XML 标签获取 HTML
【发布时间】:2018-02-24 05:37:12
【问题描述】:

我必须从this XML 文件的body 标记中获取 HTML。
代码

$doc = new DOMDocument();
$doc->load('https://m360-dev.opoint.com/api/feeds/f201637e-2524-4a56-8504-73090f532c91/view/');
foreach($doc->getElementsByTagName('document') as $node){
    $body = $node->getElementsByTagName('body')->item(0)->nodeValue;
    print_r($body);
    echo "<hr/>";
}

此代码的输出:

string(594) "
Lördagen den 7 oktober går årets upplaga av Skogsmaran av stapeln. Det 
populära terrängloppet på Vildmarksleden – mellan Skatås i Göteborg och österut 
till Hindås. Ekan Management finns med som sponsor för att främja en aktiv 
och hälsosam fritid. Vill du vara med?! Vi bjuder på deltagaravgiften till 
dig som vill tillbringa en härlig dag i naturen. 21 eller 42 kilometer, 
vandring eller löpning väljer du själv.Vi har ett begränsat antal platser. 
Anmäl ditt intresse via ekan@ekan.com så kontaktar vi dig kring det 
praktiska.Mer information finns på www.Skogsmaran.se
"

想要的输出:

<p>
   <text>
    Lördagen den 7 oktober går årets upplaga av Skogsmaran av stapeln. Det 
    populära terrängloppet på Vildmarksleden – mellan Skatås i Göteborg och 
    österut till Hindås. Ekan Management finns med som sponsor för att 
    främja en 
    aktiv och hälsosam fritid. Vill du vara med?! Vi bjuder på 
    deltagaravgiften 
    till dig som vill tillbringa en härlig dag i naturen. 21 eller 42 
    kilometer, 
    vandring eller löpning väljer du själv.
</text>
</p>
<p>
   <text>
      Vi har ett begränsat antal platser. Anmäl ditt intresse via 
      ekan@ekan.com så 
      kontaktar vi dig kring det praktiska.
   </text>
</p>
<p>
  <text>Mer information finns på www.Skogsmaran.se</text>
</p>

但这总是在body标签内返回一堆等同于HTML的字符串。

【问题讨论】:

  • 您的问题不清楚。更加详细一些。向我们展示您想要的输出
  • @B.Desai 现在请参考编辑 我刚刚添加了更多信息,如果您需要更多信息,请告诉我

标签: php html xml


【解决方案1】:

您获取节点值然后将其转储出来,如果您想要 HTML,则使用类似...

$doc = new DOMDocument();
$doc->load('https://m360-dev.opoint.com/api/feeds/f201637e-2524-4a56-8504-73090f532c91/view/');
foreach($doc->getElementsByTagName('document') as $node){
    $body = $node->getElementsByTagName('body')->item(0);
    foreach ( $body->childNodes as $node )  {
        echo $doc->saveHTML($node);
    }
    echo "<hr/>";
}

您要求文档从 $body 节点保存 HTML。

【讨论】:

  • 它也提供了我不想拥有的body 标签:&lt;body matches="true"&gt; &lt;p&gt;&lt;text&gt;Lördagen den 7 oktober går årets upplaga av Skogsmaran av stapeln. Det populära terrängloppet på Vildmarksleden – mellan Skatås i Göteborg och österut till Hindås &lt;/text&gt;&lt;/p&gt; &lt;p&gt;&lt;text&gt;Vi har ett begränsat antal platser. Anmäl ditt intresse via ekan@ekan.com så kontaktar vi dig kring det praktiska.&lt;/text&gt;&lt;/p&gt; &lt;p&gt;&lt;text&gt;Mer information finns på www.Skogsmaran.se&lt;/text&gt;&lt;/p&gt; &lt;/body&gt;
  • 我已更改代码以从 body 标记输出每个子节点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-05
  • 1970-01-01
相关资源
最近更新 更多