innmind/xml

抽象xml操作的库

7.7.0 2024-06-26 08:00 UTC

This package is auto-updated.

Last update: 2024-08-26 08:19:37 UTC


README

Build Status codecov Type Coverage

这个库是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>

以下是你可以访问的默认访问者列表