1

simplexml_load_stringを使用しているときに、ノードの値を取得しようとしています。ノードの値は正常に取得されますが、何らかの理由で、タグ内に含まれているアンカータグが完全に削除され、表示されません。

xmlは次のとおりです。

<MessageAfterVoting>Thanks for voting! Here is a link to a page: <a href="/poll/result.html" >clickhere</a></MessageAfterVoting>

simplexml_load_stringを使用してこのノードにアクセスすると(MessageAfterVoting)。テキストだけを取得します

Thanks for voting! Here is a link to a page: 

私は次のようにsimplexml_load_stringを呼び出しています:

$PresentationContent = simplexml_load_string($pollXML);

誰かが回避策のアイデアを持っていますか?できればCDATAを使用しませんか?

4

2 に答える 2

1

CDATAを使用できない場合は、htmlエンティティを使用できます。<と>を&lt;に変更します。および&gt; コード。

しかし、CDATAは正しい方法です。

于 2012-11-23T16:23:10.210 に答える
1

この関数を試してください:

function SimpleXmlElementAsString($simpleXmlElement)
{           
    $innerXML= '';
    foreach (dom_import_simplexml($simpleXmlElement)->childNodes as $child)
    {
        $innerXML .= $child->ownerDocument->saveXML( $child );
    }
    return $innerXML;
}

したがって、次のように使用します。

$xml = simplexml_load_string($pollXML);
$MessageAfterVoting = $xml->MessageAfterVoting;
$PresentationContent = SimpleXmlElementAsString($MessageAfterVoting);
于 2012-11-23T17:12:01.583 に答える