亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP 輸出 SimpleXMLElement

PHP 輸出 SimpleXMLElement

PHP
守著星空守著你 2023-07-01 15:20:48
我正在嘗試讀取 .php 中的 SimpleXMLElement 以補充搜索功能。我通過請求從一個名為 openthesaurus.de 的德語同義詞 API 獲取 XML file_get_contents。然后,我將收到的元素轉換為 SimpleXMLElement 并嘗試讀取每個元素的屬性term。(我知道下面的代碼只關注synset['0'])。這樣做是為了保持簡單。我的 .php 看起來像這樣            $url = "https://www.openthesaurus.de/synonyme/search?q=". $keyword. "&format=text/xml";            $options = array('http' =>                array(                    'method'  => 'POST',                    'header'  => 'user_agent: my-site.xyz',                )            );            $context = stream_context_create($options);            $recive = file_get_contents($url, false, $context);            if (($recieve = file_get_contents($url))===false){                echo "Error fetching XML\n";            } else {                libxml_use_internal_errors(true);                $syn = new SimpleXMLElement($recieve);                if (!$syn) {                   echo "Error loading XML\n";                    foreach(libxml_get_errors() as $error) {                        echo "\t", $error->message;                    }                } else {                    echo "content: <br>";                    foreach($syn->synset[0]->term as $value){                        echo $value. "<br>";                    }                }            }xml 看起來像這樣:<matches>    <metaData>        <apiVersion content="0.1.3"/>        <warning content="WARNING -- this XML format may be extended without warning"/>        <copyright content="Copyright (C) 2019 Daniel Naber (www.danielnaber.de)"/>        <license content="Creative Commons Attribution-ShareAlike 4.0 or GNU LESSER GENERAL PUBLIC LICENSE Version 2.1"/>        <source content="https://www.openthesaurus.de"/>        <date content="Sat Jun 27 09:48:33 CEST 2020"/>    </metaData>不幸的是,除了中斷之外,.php 沒有輸出任何內容。我也嘗試過通過 print_r 輸出,但這也沒有幫助。但是 if 條件表明empty($value)該條件$value不為空。
查看完整描述

1 回答

?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

SimpleXMLElement我和這個家庭的任何人都不熟悉SimpleXML,但如果你改變以下內容


foreach($syn->synset[0]->term as $value){

    echo $value. "<br>";

}


foreach( $syn->synset as $obj ){

    foreach( $obj->term as $arr ){

        foreach( $arr->attributes() as $attr => $value ) echo $attr . ' ' . $value .'<br />';

    }

}

或者,更全面地說:


<?php



    $keyword='kopf'; # for example...


    

    $url = "https://www.openthesaurus.de/synonyme/search?q=". $keyword. "&format=text/xml";

    $options = array('http' =>

        array(

            'method'  => 'POST',

            'header'  => 'user_agent: my-site.xyz',

        )

    );

    $context = stream_context_create( $options );

    $recive = file_get_contents( $url, false, $context );

    

    

    

    if( ( $recieve = file_get_contents( $url ) )===false ){

        echo "Error fetching XML\n";

    } else {

    

        libxml_use_internal_errors(true);

        $syn = new SimpleXMLElement( $recieve );

        

        if (!$syn) {

            echo "Error loading XML\n";

            foreach(libxml_get_errors() as $error) {

                echo "\t", $error->message;

            }

        } else {

            foreach( $syn->synset as $obj ){

                foreach( $obj->term as $arr ){

                    foreach( $arr->attributes() as $attr => $value ) echo $attr . ' ' . $value .'<br />';

                }

            }

        }

    }

?>

您應該得到一些更有意義的輸出,例如:


term Haupt

term Kopf

term Caput

level fachsprachlich

term Ballon

level umgangssprachlich

term Birne

level umgangssprachlich

term Denkapparat

level umgangssprachlich

term Denkzentrum

level umgangssprachlich

term Dez

level umgangssprachlich

term Kopp

level umgangssprachlich

term Murmel

level umgangssprachlich

term Nischel

level umgangssprachlich

term Nuss

level umgangssprachlich

term Omme

level umgangssprachlich

term Rübe

level umgangssprachlich

term Sch?del

level umgangssprachlich

term Anführer

term Führer

term H?uptling

term Hauptmann

term (führender) Kopf

term Leiter

term Oberhaupt

term Capo (einer Ultra-Gruppe)

level fachsprachlich

term Chef

level umgangssprachlich



查看完整回答
反對 回復 2023-07-01
  • 1 回答
  • 0 關注
  • 195 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號