PHP bir XML dokümanı içerisinde yorumlarına almak için nasıl

3 Cevap php

Ben PHP kullanarak bir XML belgesinin içinde belirli bir düğüm altındaki tüm yorumları ayıklamak istiyorum. Ben SimpleXML ve DOMDocument yöntemleri hem de denedi, ama ben boş çıkışlar elde tutmak. Regex başvurmak zorunda kalmadan bir belge içinde yorumlarına almak için bir yolu var mı?

3 Cevap

SimpleXML yorum işleyemez, ancak DOM uzantısı olabilir. Burada tüm yorumları ayıklamak nasıl. Sadece istediğiniz düğümü hedef XPath ifadesini uymak zorunda.

$doc = new DOMDocument;
$doc->loadXML(
    '<doc>
        <node><!-- First node --></node>
        <node><!-- Second node --></node>
    </doc>'
);

$xpath = new DOMXPath($doc);

foreach ($xpath->query('//comment()') as $comment)
{
    var_dump($comment->textContent);
}

Bir XPath API erişimi var mı? XPath kullanarak yorum bulmak için olanak sağlar (örneğin)

//comment()

Eğer bir SAX olayı tahrik-ayrıştırıcı kullanıyorsanız, ayrıştırıcı yorumların için bir olay olmalıdır. Expat kullanırken Örneğin, bir işleyici ve kullanarak ayarlamak olacaktır:

void XMLCALL
XML_SetCommentHandler(XML_Parser p,
                      XML_CommentHandler cmnt);