本文整理汇总了TypeScript中parse5.Parser类的典型用法代码示例。如果您正苦于以下问题:TypeScript Parser类的具体用法?TypeScript Parser怎么用?TypeScript Parser使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Parser类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: clone
clone(node) {
// e.g. document fragment
if (node.type === 'root') {
var serialized = serializer.serialize(node);
var newParser = new parse5.Parser(parse5.TreeAdapters.htmlparser2);
return newParser.parseFragment(serialized);
} else {
var temp = treeAdapter.createElement("template", null, []);
treeAdapter.appendChild(temp, node);
var serialized = serializer.serialize(temp);
var newParser = new parse5.Parser(parse5.TreeAdapters.htmlparser2);
return newParser.parseFragment(serialized).childNodes[0];
}
}
示例2: parseHtml
export function parseHtml(html: string): Node {
let parser = new parse5.Parser(_ADAPTER);
let root = parser.parse(html);
// Normally, "root" is the document node and contains the optional doctype
// node and the HTML node as children. We'll skip the doctype node and
// return the only HTML node.
let element:Node = null;
for (let child of _ADAPTER.getChildNodes(root)) {
if (!_ADAPTER.isDocumentTypeNode(child)) {
if (element !== null) {
throw Error("Found more than one element at the root level while parsing HTML text");
}
element = child;
}
}
return element;
}
示例3: setInnerHTML
setInnerHTML(el, value) {
this.clearNodes(el);
var content = parser.parseFragment(value);
for (var i = 0; i < content.childNodes.length; i++) {
treeAdapter.appendChild(el, content.childNodes[i]);
}
}
示例4: createTemplate
createTemplate(html) {
var template = treeAdapter.createElement("template", 'http://www.w3.org/1999/xhtml', []);
var content = parser.parseFragment(html);
treeAdapter.appendChild(template, content);
return template;
}
示例5: parseDocument
export function parseDocument(documentHtml: string): Object {
if (!documentHtml) {
throw new Error('parseDocument requires a document string');
}
if (typeof documentHtml !== 'string') {
throw new Error('parseDocument needs to be a string to be parsed correctly');
}
const doc = parser.parse(documentHtml);
/*
// Build entire doc <!doctype><html> etc
if (documentHtml.indexOf('<html>') > -1 && documentHtml.indexOf('</html>') > -1) {
const doc = parser.parse(documentHtml);
}
// ASP.NET case : parse only the fragment - don't build entire <html> doc
const doc = parser.parseFragment(documentHtml);
*/
let rootNode;
let bodyNode;
let headNode;
let titleNode;
for (let i = 0; i < doc.children.length; ++i) {
const child = doc.children[i];
if (isTag('html', child)) {
rootNode = child;
break;
}
}
if (!rootNode) {
rootNode = doc;
}
for (let i = 0; i < rootNode.children.length; ++i) {
const child = rootNode.children[i];
if (isTag('head', child)) {
headNode = child;
}
if (isTag('body', child)) {
bodyNode = child;
}
}
if (!headNode) {
headNode = treeAdapter.createElement('head', null, []);
DOM.appendChild(doc, headNode);
}
if (!bodyNode) {
bodyNode = treeAdapter.createElement('body', null, []);
DOM.appendChild(doc, bodyNode);
}
for (let i = 0; i < headNode.children.length; ++i) {
if (isTag('title', headNode.children[i])) {
titleNode = headNode.children[i];
break;
}
}
if (!titleNode) {
titleNode = treeAdapter.createElement('title', null, []);
DOM.appendChild(headNode, titleNode);
}
doc._window = {};
doc.head = headNode;
doc.body = bodyNode;
const titleNodeText = titleNode.children[0];
Object.defineProperty(doc, 'title', {
get: () => titleNodeText.data,
set: (newTitle) => titleNodeText.data = newTitle
});
return doc;
}
示例6: parseFragment
export function parseFragment(el: string): Object {
return parser.parseFragment(el);
}
示例7: parseFragment
export function parseFragment (el: string): any {
return parser.parseFragment(el);
}
示例8: parseDocument
export function parseDocument(documentHtml: string): Object {
const doc = parser.parse(documentHtml);
let rootNode;
let bodyNode;
let headNode;
let titleNode;
for (let i = 0; i < doc.children.length; ++i) {
const child = doc.children[i];
if (isTag('html', child)) {
rootNode = child;
break;
}
}
if (!rootNode) {
rootNode = doc;
}
for (let i = 0; i < rootNode.children.length; ++i) {
const child = rootNode.children[i];
if (isTag('head', child)) {
headNode = child;
}
if (isTag('body', child)) {
bodyNode = child;
}
}
if (!headNode) {
headNode = treeAdapter.createElement('head', null, []);
DOM.appendChild(doc, headNode);
}
if (!bodyNode) {
bodyNode = treeAdapter.createElement('body', null, []);
DOM.appendChild(doc, headNode);
}
for (let i = 0; i < headNode.children.length; ++i) {
if (isTag('title', headNode.children[i])) {
titleNode = headNode.children[i];
break;
}
}
if (!titleNode) {
titleNode = treeAdapter.createElement('title', null, []);
DOM.appendChild(headNode, titleNode);
}
doc._window = {};
doc.head = headNode;
doc.body = bodyNode;
const titleNodeText = titleNode.children[0];
Object.defineProperty(doc, 'title', {
get: () => titleNodeText.data,
set: (newTitle) => titleNodeText.data = newTitle
});
return doc;
}