2011-08-08 33 views
5

Tôi sợ rằng đây là một câu hỏi thực sự ngu ngốc nhưng tôi thực sự bị mắc kẹt sau khi thử tải trọng kết hợp trong 2 giờ qua. Tôi cố gắng để kéo TÊN ra của tập tin XMLPHP DOM: getElementsbyTagName

tập tin XML của tôi:

<?xml version="1.0"?> 
<userdata> 
<name>John</name> 
</userdata> 

php của tôi:

$doc   = new DOMDocument(); 
    $doc   -> load("thefile.xml"); 
    $thename  = $doc -> getElementsByTagName("name"); 
$myname= $thename -> getElementsByTagName("name") -> item(0) -> nodeValue; 

Các Lỗi:

Catchable fatal error: Object of class DOMElement could not be converted to string in phpreader.php 

Tôi đã cố gắng

$myname= $thename -> getElementsByTagName("name") -> item(0) ; 
$myname= $doc  -> getElementsByTagName("name") -> item(0) -> nodeValue; 
$myname= $doc  -> getElementsByTagName("name") -> item(0) ; 

nhưng tất cả đều không thành công. Đoán tôi đã cố gắng chỉ về mọi kết hợp ngoại trừ một sự kết hợp ngoại trừ chính xác: (

Trả lời

5

Bạn có thể muốn $myname = $thename->item(0)->nodeValue. $ Thename đã là NodeList của tất cả các nút có thẻ là "name" - bạn muốn mục đầu tiên trong số này (->item(0))), và bạn muốn giá trị của nút (->nodeValue). $thename nên được đặt tên thích hợp hơn $names, và bạn sẽ thấy lý do tại sao $names->item(0)->nodeValue có ý nghĩa ngữ nghĩa.

này làm việc cho tôi TM.

+0

ok cảm ơn Federico. Cảm ơn bạn đã giải thích rõ ràng về điều này và khắc phục. Tôi đã sử dụng PHP DOM và tắt trong 5 tháng qua và tôi thấy rất khó nhớ. Tôi chỉ sử dụng nó rất ít tuần vì vậy tôi có xu hướng quên ngữ nghĩa: (Và tôi phải gắn bó với nó ... như ai đó đã nói tôi sử dụng simpleXML. Tôi đang sử dụng nó ở nơi khác và nó dễ dàng hơn nhiều !! Nhưng Tôi đang mắc kẹt với di sản cũ PHP DOM trong một số phần. Cảm ơn một lần nữa !! :) – Morph

3

này mã chạy:

<?php 
$xml = <<<XML 
<?xml version="1.0"?> 
<userdata> 
    <name>John</name> 
</userdata> 
XML; 

$doc = new DOMDocument(); 
$doc->loadXML($xml); 
$names = $doc->firstChild->getElementsByTagName("name"); 
$myname = $names->item(0)->nodeValue; 

var_dump($myname); 
+0

Hi Dylan. Mã đó cũng làm việc cho tôi ngoài Federicos .... tuy nhiên tôi chấp nhận câu trả lời của anh ấy trên cơ sở anh ta trả lời trước. Tuy nhiên tôi giữ mã của bạn như một ví dụ 'đồ chơi' workign để tham khảo trong tương lai - nó rất hữu ích !! Cảm ơn :) – Morph

Các vấn đề liên quan