0

URLからXMLデータを抽出しようとしています。これはXMLファイルではなく、要求文字列に基づく応答です。

$url = "http://eligibility.sc.egov.usda.gov/eligibility/eligibilityservice?eligibilityType=Property&requestString=<?xml version='1.0'?><Eligibility xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='/var/lib/tomcat5/webapps/eligibility/Eligibilitywsdl.xsd'><PropertyRequest StreetAddress1='".$street."' StreetAddress2='' StreetAddress3='' City='".$city."' State='".$state."' County='' Zip='".$zip."' Program='RBS'></PropertyRequest></Eligibility>";
$xml = simplexml_load_string($url); // requires allow_url_fopen to be on
$elg = (string)$xml->Property[Eligibility];

var_dump($xml);

必要なデータは次のようになります。

<Eligibility>
    <Adjusted AnnualIncome="" TotalDeduction="" AdjustedIncome="" ElderlyDeduction="" YoungDeduction="">
    </Adjusted>
    <Section502Guaranted MaximumAdjusted="" Eligible="">
    </Section502Guaranted>
    <Section502Direct MaximumAdjusted="" Eligible="">
    </Section502Direct>
    <Property Eligibility="UnableToVerifyAddress" MapURL="http://rdgdwe.sc.egov.usda.gov/eligibilitymaps/index.jsp?app=RBSIELG&ADDRESS=392 Spruce east alton&STATE=IL&ZIP=62024"/>
    <ErrorResponse EngineId="" HostName="" MaxSeverity="" LogFile="" Class="" Module="" Severity="" Time="">
        <Message Code="" Type="" Text=""/>
    </ErrorResponse>
</Eligibility>

私が返しているものは次のようになります:

bool(false) bool(false) bool(false) bool(false) bool(false) bool(false) bool(false) bool(false) bool(false) bool(false) 

なぜそれがこれをしているのか私には分かりません。エラーも投稿されていません。

4

3 に答える 3

2

simplexml_load_string()URLではなく整形式のXML文字列が必要です。あなたは試してみたいかもしれませんsimplexml_load_file()

于 2013-03-21T21:36:58.647 に答える
0

$urlから次のものを削除する必要があります。

http://eligibility.sc.egov.usda.gov/eligibility/eligibilityservice?eligibilityType=Property&requestString=

simplexml_load_string関数は整形式のXML文字列を取り、開始タグの前にURLがあるためです。

于 2013-03-21T21:38:42.957 に答える
0

これを試して:

$url = "http://eligibility.sc.egov.usda.gov/eligibility/eligibilityservice?eligibilityType=Property&requestString=<?xml version='1.0'?><Eligibility xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='/var/lib/tomcat5/webapps/eligibility/Eligibilitywsdl.xsd'><PropertyRequest StreetAddress1='".$street."' StreetAddress2='' StreetAddress3='' City='".$city."' State='".$state."' County='' Zip='".$zip."' Program='RBS'></PropertyRequest></Eligibility>";
$url_arr = explode( 'requestString=', $url );
$xml = simplexml_load_string( $url_arr[ 1 ] ); // requires allow_url_fopen to be on
$elg = (string)$xml->Property[Eligibility];

var_dump($xml);

基本的に、私はあなたが与えた$ urlを分解して、整形式のxmlが$url_arr[1]で分離されるようにします。

于 2013-03-21T21:40:03.153 に答える