3

xml 要素のテキスト値にアクセスしようとしています。を使用してSimpleXMLElementいます。明らかな何かが欠けている必要があります。

<h:html xmlns:jr="http://openrosa.org/javarosa" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ex="http://www.w3.org/2001/xml-events" xmlns:h="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/2002/xforms">
  <h:head>
    <h:title>NewForm</h:title>      
  </h:head>
</h:html>

$xml = new SimpleXMLElement($resp);
$xml->registerXPathNamespace('h', 'http://www.w3.org/1999/xhtml'); 
// I have tried with and without the namespace (it doesn't seem to make a difference)

$result = $xml->xpath('//h:title');
debug($result);

上記のコードを実行すると、次のようになります。

array (
  0 => 
  SimpleXMLElement::__set_state(array(
     0 => 'NewForm',
  )),
)

とてもシンプルに見えます。「NewForm」の値を取得するのに苦労しています

私が試してみました

$result[0], $result[0]->{0}, $result[0][0].

の子を繰り返し$result[0]ます。

タイトル要素からテキストを取得できるように、誰かが私を正しい方向に導くのを手伝ってくれませんか?

4

2 に答える 2

15

これはあなたの例でうまくいきました:

echo (string)$result[0];
于 2012-04-19T18:22:29.580 に答える
1

配列内のアイテムを選択した後、文字列にキャストしてみてください。

[...]
$result = $xml->xpath('//h:title');
echo current($result);
于 2012-04-19T18:22:38.110 に答える