Documentation ¶
Index ¶
- func EmptyToSelfClosing(from []byte) []byte
- func EqualXml(l, r []byte) bool
- func NodeEquals(l, r *Node) bool
- type DocTrim
- func (s *DocTrim) MakeReader(url string) (*zip.ReadCloser, error)
- func (slim *DocTrim) Pack(xmlData io.Reader) ([]byte, error)
- func (s DocTrim) Process(url string) ([]byte, error)
- func (slim *DocTrim) RegHash(hash uint64, node *Node) (uint64, bool)
- func (slim *DocTrim) Reset()
- func (s DocTrim) Unpack(reader io.Reader) ([]byte, error)
- type Node
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func EmptyToSelfClosing ¶
func NodeEquals ¶
Types ¶
type DocTrim ¶
type DocTrim struct {
// contains filtered or unexported fields
}
Slimmer 精简器
func (*DocTrim) MakeReader ¶
func (s *DocTrim) MakeReader(url string) (*zip.ReadCloser, error)
MakeReader 根据URL创建zip.ReadCloser对象 如果URL以http://或https://开头,则下载文件并返回ReadCloser对象 否则,打开本地文件并返回ReadCloser对象
func (*DocTrim) Pack ¶
Pack 压缩XML 使用xml.Decoder将XML解码为Node对象 然后计算节点的哈希值,并压缩节点及其子节点 最后,使用xml.Marshal将Node对象转换为XML字节数组并返回
type Node ¶
type Node struct { XMLName xml.Name Attrs []xml.Attr `xml:",any,attr"` Content []byte `xml:",chardata"` Children []*Node `xml:",any"` // contains filtered or unexported fields }
Node 表示XML节点
func (*Node) Compact ¶
Compact 压缩节点 如果节点的isCompat字段为true,则将节点的属性、内容和子节点清空 否则,如果节点的refCount大于0,则将节点的哈希值作为属性添加到节点中 最后,递归压缩子节点
func (*Node) ComputeHash ¶
ComputeHash 计算节点的哈希值 使用fnv算法计算节点的哈希值,并将结果存储在hash字段中 如果哈希值已存在于字典中,则将节点的isCompat字段设置为true
Click to show internal directories.
Click to hide internal directories.