当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript libxmljs.parseXml函数代码示例

本文整理汇总了TypeScript中libxmljs.parseXml函数的典型用法代码示例。如果您正苦于以下问题:TypeScript parseXml函数的具体用法?TypeScript parseXml怎么用?TypeScript parseXml使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了parseXml函数的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1:

import * as libxmljs from 'libxmljs';

const xml =  '<?xml version="1.0" encoding="UTF-8"?>' +
           '<root>' +
               '<child foo="bar">' +
                   '<grandchild baz="fizbuzz">grandchild content</grandchild>' +
               '</child>' +
               '<sibling>with content!</sibling>' +
           '</root>';

const xmlDoc = libxmljs.parseXml(xml);

// xpath queries
const gchild = xmlDoc.get('//grandchild')!;

console.log(gchild.text());  // prints "grandchild content"

const children = xmlDoc.root()!.childNodes();
const child = children[0] as libxmljs.Element;

console.log(child.attr('foo')!.value()); // prints "bar"

const parser = new libxmljs.SaxParser();

parser.on('startDocument', () => 0);
parser.on('startElement', () => 0);

const parser2 = new libxmljs.SaxPushParser();

// connect any callbacks here
parser2
开发者ID:pixelshaded,项目名称:DefinitelyTyped,代码行数:31,代码来源:libxmljs-tests.ts

示例2: require

/// <reference path="../node/node.d.ts" />
/// <reference path="libxmljs.d.ts" />

var libxmljs = require("libxmljs");
var xml =  '<?xml version="1.0" encoding="UTF-8"?>' +
           '<root>' +
               '<child foo="bar">' +
                   '<grandchild baz="fizbuzz">grandchild content</grandchild>' +
               '</child>' +
               '<sibling>with content!</sibling>' +
           '</root>';

var xmlDoc = libxmljs.parseXml(xml);

// xpath queries
var gchild = xmlDoc.get('//grandchild');

console.log(gchild.text());  // prints "grandchild content"

var children = xmlDoc.root().childNodes();
var child = children[0];

console.log(child.attr('foo').value()); // prints "bar"

var parser = new libxmljs.SaxParser();

parser.on('startDocument', null);
parser.on('startElement', null);

var parser2 = new libxmljs.SaxPushParser();
开发者ID:Agamnentzar,项目名称:DefinitelyTyped,代码行数:30,代码来源:libxmljs-tests.ts

示例3: request

export function request(
  data,
  cwmpVersion,
  warn
): {
  id: string;
  cwmpVersion: string;
  sessionTimeout: number;
  cpeRequest?: CpeRequest;
  cpeFault?: CpeFault;
  cpeResponse?: CpeResponse;
} {
  warnings = warn;

  const rpc = {
    id: null,
    cwmpVersion: cwmpVersion,
    sessionTimeout: null,
    cpeRequest: null,
    cpeFault: null,
    cpeResponse: null
  };

  if (!data.length) return rpc;

  const xml = parseXml(data, LIBXMLJS_PARSE_OPTIONS);

  let headerElement, bodyElement;

  for (const c of xml.childNodes()) {
    switch (c.name()) {
      case "Header":
        headerElement = c;
        break;
      case "Body":
        bodyElement = c;
        break;
    }
  }

  if (headerElement) {
    for (const c of headerElement.childNodes()) {
      switch (c.name()) {
        case "ID":
          rpc.id = c.text();
          break;
        case "sessionTimeout":
          rpc.sessionTimeout = parseInt(c.text());
          break;
      }
    }
  }

  for (const methodElement of bodyElement.childNodes()) {
    const methodName = methodElement.name();
    if (methodName === "text") continue;

    if (!rpc.cwmpVersion && methodName !== "Fault") {
      switch (methodElement.namespace().href()) {
        case "urn:dslforum-org:cwmp-1-0":
          rpc.cwmpVersion = "1.0";
          break;
        case "urn:dslforum-org:cwmp-1-1":
          rpc.cwmpVersion = "1.1";
          break;
        case "urn:dslforum-org:cwmp-1-2":
          if (rpc.sessionTimeout) rpc.cwmpVersion = "1.3";
          else rpc.cwmpVersion = "1.2";

          break;
        case "urn:dslforum-org:cwmp-1-3":
          rpc.cwmpVersion = "1.4";
          break;
        default:
          throw new Error("Unrecognized CWMP version");
      }
    }

    switch (methodName) {
      case "Inform":
        rpc.cpeRequest = Inform(methodElement);
        break;
      case "GetRPCMethods":
        rpc.cpeRequest = GetRPCMethods();
        break;
      case "TransferComplete":
        rpc.cpeRequest = TransferComplete(methodElement);
        break;
      case "RequestDownload":
        rpc.cpeRequest = RequestDownload(methodElement);
        break;
      case "GetParameterNamesResponse":
        rpc.cpeResponse = GetParameterNamesResponse(methodElement);
        break;
      case "GetParameterValuesResponse":
        rpc.cpeResponse = GetParameterValuesResponse(methodElement);
        break;
      case "SetParameterValuesResponse":
        rpc.cpeResponse = SetParameterValuesResponse(methodElement);
        break;
//.........这里部分代码省略.........
开发者ID:zaidka,项目名称:genieacs,代码行数:101,代码来源:soap.ts


注:本文中的libxmljs.parseXml函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。