Contenu connexe Similaire à FluentDom (20) Plus de Thomas Weinert (8) FluentDom2. About Me
● Application Developer
● PHP
● JavaScript
● XSL
● Papaya Software GmbH
● papaya CMS
● Technical Director
4. About FluentDOM
● JQuery API
● DOMNodeList replacement
● Learning Project
● Test driven development
● Continous Integration
● Parser
● Tobias Schlitt
● Bastian Feder, Thomas Weinert
5. Differences To jQuery
● „Only“ Traversing, Manipulation and some Core
functions
● Xpath Expressions (not CSS Selectors)
● No method html() but xml()
● Callbacks have a $node parameter
7. Chaining Sample
$fd = FluentDOM($html, 'html')
->find('/html/head/title')
->add('//h1')
->add('//h2');
8. Traversing
● find() ● children() ● first()
● add() ● closest() ● last()
● not() ● contents() ● prev()
● filter() ● parent() ● prevAll()
● has() ● parents() ● prevUntil()
● end() ● parentsUntil() ● next()
● andSelf() ● siblings() ● nextAll()
● nextUntil()
9. Xpath
● XML Path Language
● W3C Recommendation 16 November 1999
● Used by
● XSLT 1
● Xpointer
● More specific then CSS
● More powerful then CSS
10. Namespaces
● Xpath depends on namespaces
● Register your own namespaces prefixes
● Method: namespaces()
$title = FluentDOM($xml)
->namespaces(
array('project-atom' => 'http://www.w3.org/2005/Atom')
)
->evaluate(
'string(/project-atom:feed/project-atom:title)'
);
11. Interfaces
● IteratorAggregate
● Iterator
● RecursiveIterator
● Seekable
● Countable
● ArrayAccess (read only)
12. Functions
● Create FluentDOM object and load data
● FluentDOM
● FluentDOMStyle
13. Manipulation
● append() ● appendTo() ● xml()
● prepend() ● prependTo() ● text()
● before() ● insertAfter() ● attr()
● after() ● insertBefore() ● addClass()
● remove() ● wrap() ● removeClass()
● replaceAll() ● wrapAll() ● toggleClass()
● replaceWith() ● wrapInner()
14. Loaders
● Default Loaders
● DOMDocument, DOMNode
● XML (file and string)
● HTML (file and string)
● Additional Loaders
● SimpleXMLElement
● PDO
● JSON
15. Own Loaders
● Interface FluentDOMLoader
● load() returns DOMDocument or DOMNode
18. Get It
● http://fluentdom.org
● http://nightly.fluentdom.org
● svn://svn.fluentdom.org