Comments (5)
Not really, FluentDOM\Query
is a node list, just like jQuery. If you're working with a single node, using the extended DOM node objects is not a bad idea. If you iterate a FluentDOM\Query
the items are node objects. FluentDOM\Element
even provides ArrayAccess
for the attributes.
See: https://github.com/FluentDOM/FluentDOM/wiki/Element-ArrayAccess
A node name is complex. It is actually 3 properties. DOMNode::$nodeName
, DOMNode::$localName
and DOMNode::$namespaceURI
. The node name is the tag name including the namespace prefix. It is not stable (the namespace prefix can change and is optional). To validate a node you should verify the local name and the namespace URI.
if ($node->namespaceURI= 'urn:foo' && $node->localName = 'foo') {
...
}
So I suggesting working with the element nodes and only putting them back into a FluentDOM\Query if you really need the traversing/manipulation API again.
Additionally FluentDOM\Query::is()
and FluentDOM\Query::filter()
could be used to verify the condition.
from fluentdom.
Thanks Thomas, but I still believe adding functions for getting full name or local name to your query/element object would be very useful. Something like this:
$fd->find('//div')->children()->first()->getlocalTagName()
- Most XML documents used in the web for casual porpuses don't have namespaces. Including, HTML.
from fluentdom.
Why not just:
$fd->find('//div')->children()[0]->localName
or as a validation
$fd->find('//div')->children()->first()->is('local-name() = "span"')
The jQuery API is large and a little messy. So I am feeling a little queasy about adding more methods. Especially if they are not in jQuery.
from fluentdom.
I understand your feeling ... but ... you know ... people care about methods that are not there, not the extra methods that they do not use. It's also quite a useful feature. And "children()[0]->localName" is not as elegant as "getLocalName()".
Anyway, it's your library and you're in charge. Do what you believe is the best...
from fluentdom.
Well it is FluentDOM($node)[0]->localName
vs FluentDOM($node)->getLocalName()
. The difference is not that big.
from fluentdom.
Related Issues (20)
- XMLWriter::collapse()
- Creator forgets namespace
- Allow to attach an exting stream to XMLReader HOT 1
- Bug: is() using CSS selector behaves like has() HOT 5
- Load an HTML fragment from an HTML5 source HOT 2
- Update MutationMacro according DOM 4.1
- Add ParentNode::$childElementCount
- Loading HTML5 fragment bug HOT 1
- Workaround for namespace definition removal
- HJson Loader
- Json5 loader
- Improve documentation for CSS selectors HOT 1
- preserveWhitespace in Libxml-Loader HOT 3
- Please support unwrap() HOT 4
- How to Iterate? HOT 2
- XDM Loader/Serializer
- What is the proper way to check for a missing file HOT 2
- What is the correct way to replace elements in a foreach? HOT 1
- PHP 8 support HOT 2
- Support PHP 8.1 better HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fluentdom.