2017-10-17 14 views
1

この質問はこれまでに聞かれたことがわかりましたが、動作させることはできません。私はPHPファイルでsimplexmlとxpathを使用しています。子ノードのテキストを含むノードからテキストを取得する必要があります。だから、結果は次のようになります。ここではPHP XML:ノードとその子のテキストを取得する

Mr.Smith bought a white convertible car. 

xmlです:

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="test9.xsl"?> 
<items> 
    <item> 
     <description> 
      <name>Mr.Smith bought a <car>white</car> <car>convertible</car> car.</name> 
     </description> 
    </item> 
</items> 

働いていないPHPは次のとおりです。

$text = $xml->xpath('//items/item/description/name'); 
    foreach($text as &$value) { 
     echo $value; 
} 

助けてください!そのすべての子要素を持つノードの値を取得するには

+0

電流出力 – RomanPerekhrest

答えて

0

、あなたはC14n()で、DOMDocumentを使用することができます。

<?php 
$xml = <<<XML 
<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="test9.xsl"?> 
<items> 
    <item> 
     <description> 
      <name>Mr.Smith bought a <car>white</car> <car>convertible</car> car.</name> 
     </description> 
    </item> 
</items> 
XML; 
$doc = new DOMDocument; 
$doc->loadXML($xml); 
$x = new DOMXpath($doc); 
$text = $x->query('//items/item/description/name'); 
echo $text[0]->C14n(); // Mr.Smith bought a white convertible car. 

Demo

+0

それとも単に '$テキストを投稿する[0] - >のnodeValue ; 'even' $ text [0] - > textContent; ' – Parfait

+0

@パルフェットありがとう!彼は何らかの理由でそこにもタグが必要だと考えました。 – ishegg

+0

私は何らかの理由で何も得られません。あなたはそれをテストしましたか? –

関連する問題