2013-07-14 13 views

Odpowiedz

6

Istnieją 2 XMLs: Lexical XML i XML. XPath działa na podstawie reprezentacji analizowanego XML, na przykład DOM lub XDM. W związku z tym można utworzyć sparsowany kod XML z leksykalnego HTML5, w ten sposób można zapytać HTML5 za pomocą XPath.

1

XPath jest dla zapytanie o DOM, nie parsowanie znaczników. DOM może być generowany z dokumentu HTML, więc możesz go zapytać za pomocą XPath.

+0

XPath, język ścieżki XML, to język zapytań do wybierania węzłów z dokumentu XML. [Wikipedia]: .Nigdy nie jest domem! – user2567191

+0

Technicznie, XPath nie jest zdefiniowany do działania przeciwko DOM, ale przeciwko własnemu modelowi danych, który w XPath 2.0 nazywa się XDM. Istnieje proste mapowanie zdefiniowane z XML na XDM, ale możliwe jest również zdefiniowanie mapowania z HTML5 na XDM. Nie ma zdefiniowanego standardowego mapowania, ale w większości przypadków jest to dość oczywiste. –

+0

@MichaelKay - Co masz na myśli mówiąc "dość oczywiste"? Mapowanie z serializacji HTML HTML5 do DOM nie jest wcale oczywiste. Czy rozumiesz, że odwzorowanie z kodowania DOM4 z HTML do XDM jest "dość oczywiste"? – Alohci

2

Możesz z ogromnym zastrzeżeniem, że prawdopodobnie nie powinieneś, chyba że masz też.

Weźmy następujący kod HTML:

<div> 
    <p> Here is a paragraph 
    <p> Here is another, is it inside the first, who knows? 
</div> 

Teraz większość parser HTML będzie przyjąć, że powyższe środki to:

<div> 
    <p> Here is a paragraph </p> 
    <p> And another, is it inside the first, who knows? </p> 
</div> 

Teraz XPath /div/p[2] powinien powrócić "And another..." jednak, może to być równie dobrze interpretowana jako:

<div> 
    <p> Here is a paragraph 
     <p> And another, is it inside the first, who knows? </p> 
    </p> 
</div> 

Gdzie /div/p[2] nic nie zwraca, a XPath /div/p/p zwraca "And another...".

HTML nie jest XML i nie musi być dobrze uformowany, więc używanie technologii XML z HTML może prowadzić do idiosynkrazji. Tak długo, jak przyznajesz się, że powinieneś być w porządku.

Powiązane problemy