2008-08-26 34 views
12

Tôi đang dịch mã C# của mình để nhận xét video trên YouTube thành PHP. Để lồng các bình luận đúng cách, tôi cần phải sắp xếp lại các nút XML. Trong PHP tôi đang sử dụng DOMDocument và DOMXPath tương ứng chặt chẽ với C# XmlDocument. Tôi đã nhận được khá xa trong bản dịch của tôi nhưng bây giờ tôi đang mắc kẹt trên nhận được nút cha của một DOMElement. Một DOMElement không có thuộc tính parent_node(), chỉ một DOMNode cung cấp thuộc tính đó.Xác định Node của DOMElement

Sau khi xác định rằng nhận xét là câu trả lời cho nhận xét trước dựa vào chuỗi "trả lời" trong phần tử liên kết, tôi cần có nút gốc để lồng vào bên dưới nhận xét trong trả lời:

// Get the parent entry node of this link element 
$importnode = $objReplyXML->importNode($link->parent_node(), true); 

Trả lời

20

DOMElement là một lớp con của DOMNode, vì vậy nó không có tài sản parent_node. Chỉ cần sử dụng $ domNode-> parentNode; để tìm nút cha.

Trong ví dụ của bạn, nút cha của $ importnode là rỗng, vì nó đã được nhập vào tài liệu và do đó chưa có cha mẹ. Bạn cần phải đính kèm nó vào một phần tử khác trước khi nó có một phụ huynh.

+4

DOMElement mở rộng DOMNode và 'DOMNode :: parentNode' là công khai, do đó thuộc tính này cũng có sẵn trên DOMElement. http://php.net/manual/en/class.domnode.php và http://php.net/manual/en/class.domelement.php – feeela

0

Tôi không hoàn toàn chắc chắn cách mã của bạn hoạt động, nhưng có vẻ như bạn có một lỗi nhỏ trong mã của mình.

Trên dòng bạn đã đăng trong câu hỏi của mình, bạn có $link->parent_node(), nhưng trong câu trả lời với toàn bộ đoạn mã bạn có $link**s**->parent_node().

Tôi không nghĩ rằng s sẽ ở đó.

Ngoài ra, tôi nghĩ bạn nên sử dụng $ link-> parentNode, chứ không phải $ link-> parent_node().

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