@types/libxmljs
Version:
TypeScript definitions for libxmljs
226 lines (194 loc) • 6.57 kB
TypeScript
/// <reference types="node"/>
import { EventEmitter } from "events";
export const version: string;
export const libxml_version: string;
export const libxml_parser_version: string;
// eslint-disable-next-line @definitelytyped/strict-export-declare-modifiers
interface StringMap {
[key: string]: string;
}
// eslint-disable-next-line @definitelytyped/strict-export-declare-modifiers
interface ParserOptions {
recover?: boolean | undefined;
noent?: boolean | undefined;
dtdload?: boolean | undefined;
doctype?: boolean | undefined;
dtdattr?: any;
dtdvalid?: boolean | undefined;
noerror?: boolean | undefined;
errors?: boolean | undefined;
nowarning?: boolean | undefined;
warnings?: boolean | undefined;
pedantic?: boolean | undefined;
noblanks?: boolean | undefined;
blanks?: boolean | undefined;
sax1?: boolean | undefined;
xinclude?: boolean | undefined;
nonet?: boolean | undefined;
net?: boolean | undefined;
nodict?: boolean | undefined;
dict?: boolean | undefined;
nsclean?: boolean | undefined;
implied?: boolean | undefined;
nocdata?: boolean | undefined;
cdata?: boolean | undefined;
noxincnode?: boolean | undefined;
compact?: boolean | undefined;
old?: boolean | undefined;
nobasefix?: boolean | undefined;
basefix?: boolean | undefined;
huge?: boolean | undefined;
oldsax?: boolean | undefined;
ignore_enc?: boolean | undefined;
big_lines?: boolean | undefined;
baseUrl?: string | undefined;
}
export function parseXml(source: string, options?: ParserOptions): Document;
export function parseXmlString(source: string, options?: ParserOptions): Document;
export function parseHtml(source: string, options?: ParserOptions): Document;
export function parseHtmlString(source: string, options?: ParserOptions): Document;
export function parseHtmlFragment(source: string, options?: ParserOptions): Document;
export function memoryUsage(): number;
export function nodeCount(): number;
export class Document {
/**
* Create a new XML Document
* @param version XML document version, defaults to 1.0
* @param encoding Encoding, defaults to utf8
*/
constructor(version?: number, encoding?: string);
errors: SyntaxError[];
validationErrors: ValidationError[];
child(idx: number): Element | null;
childNodes(): Element[];
encoding(): string;
encoding(enc: string): this;
find(xpath: string, ns_uri?: string): Element[];
find(xpath: string, namespaces: StringMap): Element[];
get(xpath: string, namespaces?: StringMap): Element | null;
node(name: string, content?: string): Element;
root(): Element | null;
root(newRoot: Node): Node;
toString(formatted?: boolean): string;
type(): "document";
validate(xsdDoc: Document): boolean;
version(): string;
setDtd(name: string, ext: string, sys: string): void;
getDtd(): {
name: string;
externalId: string;
systemId: string;
};
}
export class Node {
doc(): Document;
parent(): Element | Document;
/**
* The namespace or null in case of comment nodes
*/
namespace(): Namespace | null;
/**
* An array of namespaces that the object belongs to.
*
* @param local If it is true, only the namespace declarations local to this
* node are returned, rather than all of the namespaces in scope
* at this node (including the ones from the parent elements).
*/
namespaces(local?: boolean): Namespace[];
prevSibling(): Node | null;
nextSibling(): Node | null;
type(): "comment" | "element" | "text" | "attribute";
remove(): this;
clone(): this;
/**
* Serializes the node to a string. The string will contain all contents of the node formatted as XML and can be used to print the node.
*/
toString(
format?: boolean | {
declaration: boolean;
selfCloseEmpty: boolean;
whitespace: boolean;
type: "xml" | "html" | "xhtml";
},
): string;
text(): string;
text(newText: string): this;
}
export class Element extends Node {
constructor(doc: Document, name: string, content?: string);
node(name: string, content?: string): Element;
name(): string;
name(newName: string): this;
text(): string;
text(newText: string): this;
attr(name: string): Attribute | null;
attr(attrObject: StringMap): this;
attrs(): Attribute[];
doc(): Document;
child(idx: number): Node | null;
childNodes(): Node[];
/**
* @return The original element, not the child.
*/
addChild(child: Element): this;
prevElement(): Element | null;
nextElement(): Element | null;
addNextSibling(siblingNode: Node): Node;
addPrevSibling(siblingNode: Node): Node;
find(xpath: string, ns_uri?: string): Node[];
find(xpath: string, namespaces: StringMap): Node[];
get(xpath: string, ns_uri?: string): Element | null;
get(xpath: string, namespaces: StringMap): Element | null;
defineNamespace(prefixOrHref: string, hrefInCaseOfPrefix?: string): Namespace;
namespace(): Namespace | null;
namespace(newNamespace: Namespace): this;
namespace(prefixOrHref: string, hrefInCaseOfPrefix?: string): Namespace;
replace(replacement: string): string;
replace(replacement: Element): Element;
path(): string;
}
export class Attribute {
name(): string;
value(): string;
value(newValue: string): Attribute;
namespace(): Namespace;
remove(): void;
}
export class Namespace {
href(): string;
prefix(): string;
}
export class SaxParser extends EventEmitter {
constructor();
parseString(source: string): boolean;
}
export class SaxPushParser extends EventEmitter {
constructor();
push(source: string): boolean;
}
export interface SyntaxError {
domain: number | null;
code: number | null;
message: string | null;
level: number | null;
file: string | null;
line: number | null;
/**
* 1-based column number, 0 if not applicable/available.
*/
column: number;
str1: number | null;
str2: number | null;
str3: number | null;
int1: number | null;
}
export interface ValidationError extends Error {
domain: number | null;
code: number | null;
level: number | null;
line: number | null;
/**
* 1-based column number, 0 if not applicable/available.
*/
column: number;
}