innmind / xml
抽象xml操作的库
7.7.0
2024-06-26 08:00 UTC
Requires
- php: ~8.2
- innmind/filesystem: ~7.0
- innmind/immutable: ~5.7
Requires (Dev)
- innmind/black-box: ~5.5
- innmind/coding-standard: ~2.0
- phpunit/phpunit: ~10.2
- vimeo/psalm: ~5.12
README
这个库是php的\DOM*
类之上的抽象,目标是明确每个节点的接口。
主要区别在于每个节点是不可变的,并且只知道自己的子节点(而不是知道父节点和兄弟节点)。这可以让你提取整个子树,并用它来构建一个新的树,而不会影响原始的树。
重要:你必须使用 vimeo/psalm
来确保正确使用此库。
安装
composer require innmind/xml
使用方法
use Innmind\Xml\{ Reader\Reader, Node, }; use Innmind\Filesystem\File\Content; use Innmind\Immutable\Maybe; $read = Reader::of(); $tree = $read( Content\Lines::ofContent('<root><foo some="attribute"/></root>') ); // Maybe<Node>
从节点中提取信息
该库使用访问者模式来提供对原始xml库的访问。例如,你可以这样访问一个节点的父节点
use Innmind\Xml\Visitor\ParentNode; $parent = ParentNode::of($childNode)($treeToSearchIn); // Maybe<Node>
以下是你可以访问的默认访问者列表