2017-10-09 1 views
0

PHP에서 SimpleXML을 사용하여 XML의 라인을 선택하려고합니다. 이런 식으로 보이는 XML에로드 코드가 있습니다.SimpleXML 노드 선택

<Row> 
     <Cell name="ID">S061102000000000000000006492017092915:13</Cell> 
    </Row> 

내 코드에서 이름을 선택하지만 원하는 이름을 선택하고 싶습니다. 이

<?php 
     $xml=simplexml_load_file("test.xml") or die("Error: Cannot create 
     object"); 

     echo "'".$xml->book[0]->title['name'] . "',<br>"; 
    ?> 

그래서이 분명 텍스트

ID

내가 그러나이 행의 값을 원하는 출력과 같은 순간에 PHP에서 내 라인이 보인다. 당신은 또한 알고 그냥 그래서 같은

<Cell name="Name">First Name</Cell> 

답변

0

는 코드는이

$xml = '<Row> 
    <Cell name="ID">S061102000000000000000006492017092915:13</Cell> 
</Row>'; 

$data = new SimpleXMLElement($xml); 
echo "Name:" . $data->Cell["name"] . "\n"; 
echo "Value:" . (string)$data->Cell . "\n"; 

처럼 보일 것이다 또는 당신이있는 경우

$xml = '<Row> 
    <Cell name="ID">S061102000000000000000006492017092915:13</Cell> 
    <Cell name="Name">Value</Cell> 
</Row>'; 

$data = new SimpleXMLElement($xml); 
foreach ($data as $cell) { 
    echo "Name:" . $cell["name"] . "\n"; 
    echo "Value:" . (string)$cell . "\n"; 
} 
+1

는'echo'ing 문자열로 캐스트 데이터를 통해 여러 세포 태그, 루프를 처리 할 수 암시 적으로 캐스트 연산자가 필요하지 않습니다. – ishegg

+2

에코는 단지 예일뿐입니다. 일반적으로 값을 다른 곳에서 사용할 수 있습니다. 즉 substr 또는 종류의 항목에 사용됩니다. 이 경우 캐스팅을 잊어 버리면 문자열 변환에 대한 객체에 대한 오류나 경고가 발생합니다. 그래서 나는 그것을 암묵적으로 썼다. – Philipp

0

의 콘텐츠는 태그의 몸을 얻으려면 왜 name 속성합니까를 얻으려면 더 셀 이름 값이 있습니까?

대신

$xml->book[0]->title['name'] 

의 당신은

$xml->Row[0]->Cell 

당신은 노드/속성에 geting하는 here 값에 대한 자세한 내용은 수 있어야합니다 귀하의 경우에는

$xml->book[0]->title 

를 사용해야합니다. 당신의 XML 형식을 사용

관련 문제