Вход Регистрация
Файл: error-kitty/node_modules/cheerio/node_modules/CSSselect/node_modules/domutils/lib/stringify.js
Строк: 69
<?php
var ElementType = require("domelementtype"),
    
isTag ElementType.isTag;

module.exports = {
    
getInnerHTMLgetInnerHTML,
    
getOuterHTMLgetOuterHTML,
    
getTextgetText
};

function 
getInnerHTML(elem){
    return 
elem.children elem.children.map(getOuterHTML).join("") : "";
}

//boolean attributes without a value (taken from MatthewMueller/cheerio)
var booleanAttribs = {
    
__proto__null,
    
asynctrue,
    
autofocustrue,
    
autoplaytrue,
    
checkedtrue,
    
controlstrue,
    
defertrue,
    
disabledtrue,
    
hiddentrue,
    
looptrue,
    
multipletrue,
    
opentrue,
    
readonlytrue,
    
requiredtrue,
    
scopedtrue,
    
selectedtrue
};

var 
emptyTags = {
    
__proto__null,
    
areatrue,
    
basetrue,
    
basefonttrue,
    
brtrue,
    
coltrue,
    
frametrue,
    
hrtrue,
    
imgtrue,
    
inputtrue,
    
isindextrue,
    
linktrue,
    
metatrue,
    
paramtrue,
    
embedtrue
};

function 
getOuterHTML(elem){
    switch(
elem.type){
    case 
ElementType.Text:
        return 
elem.data;
    case 
ElementType.Comment:
        return 
"<!--" elem.data "-->";
    case 
ElementType.Directive:
        return 
"<" elem.data ">";
    case 
ElementType.CDATA:
        return 
"<!CDATA " getInnerHTML(elem) + "]]>";
    }

    var 
ret "<" elem.name;
    if(
"attribs" in elem){
        for(var 
attr in elem.attribs){
            if(
elem.attribs.hasOwnProperty(attr)){
                
ret += " " attr;
                var 
value elem.attribs[attr];
                if(
value == null){
                    if( !(
attr in booleanAttribs) ){
                        
ret += "=""";
                    }
                } else {
                    
ret += "="" + value + """;
                }
            }
        }
    }

    if (
elem.name in emptyTags && elem.children.length === 0) {
        return 
ret " />";
    } else {
        return 
ret ">" getInnerHTML(elem) + "</" elem.name ">";
    }
}

function 
getText(elem){
    if(Array.
isArray(elem)) return elem.map(getText).join("");
    if(
isTag(elem) || elem.type === ElementType.CDATA) return getText(elem.children);
    if(
elem.type === ElementType.Text) return elem.data;
    return 
"";
}
?>
Онлайн: 0
Реклама