matinal:SAP ABAP 生成XML的例子

2023-11-15

REPORT ZXML_A.

SET EXTENDED CHECK OFF.

TYPE-POOLS: IXML.

*&---------------------------------------------------------------------*
*& Report  T_DOM_MANIPULATE
*&
*&---------------------------------------------------------------------*
*& shows how to manipulate a dom tree
*&---------------------------------------------------------------------*
***********************************************************
* macros

DEFINE XML.

  WRITE: / 'XML:', &1 COLOR COL_POSITIVE INVERSE.

END-OF-DEFINITION.

*************************************************************
* global data
*
DATA: DOCUMENT  TYPE REF TO IF_IXML_DOCUMENT,

      RET       TYPE I.
*************************************************************
* building a DOM tree from scratch
*

START-OF-SELECTION.

* create the tree
  PERFORM CREATE_DOM CHANGING DOCUMENT.

* print the tree
  ULINE. WRITE: / 'DOCUMENT BEFOR MANIPULATION'.

  PERFORM PRINT_DOM USING DOCUMENT.

* render the tree
  PERFORM MANIP_DOM CHANGING DOCUMENT.

* print the tree
  ULINE. WRITE: / 'DOCUMENT AFTER MANIPULATION'.

  PERFORM PRINT_DOM USING DOCUMENT.

* render the tree
  PERFORM RENDER_DOM CHANGING DOCUMENT.

*&---------------------------------------------------------------------*
*&      Form  create_dom
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_DOCUMENT  text
*----------------------------------------------------------------------*

FORM CREATE_DOM CHANGING DOCUMENT TYPE REF TO IF_IXML_DOCUMENT.

*------------------------------
* document to create
*------------------------------

* <?xml version="1.0"?>

* <order number="4711">

*    <head>

*      <status>confirmed</status>

*      <date format="mm/dd/yyyy">08/15/1999</date>

*    </head>

*    <body>

*      <item pos="10" units="2" price="17">abap-book  </item>

*      <item pos="20" units="1" price="10">sapr3-cdrom</item>

*      <item pos="30" units="5" price="12">coffee     </item>

*    </body>

* </order>

*------------------------------

  DATA:  IXML      TYPE REF TO IF_IXML,

         PARENT    TYPE REF TO IF_IXML_NODE,

         ELEMENT   TYPE REF TO IF_IXML_ELEMENT,

         NODE      TYPE REF TO IF_IXML_NODE,

         RET       TYPE I.

* create the ixml main factory

  IXML = CL_IXML=>CREATE( ).

* create a empty document

  DOCUMENT = IXML->CREATE_DOCUMENT( ).

* create root node <order>                   "根节点!!!!!!!!!!

  ELEMENT = DOCUMENT->CREATE_ELEMENT( NAME = 'order' ).

  RET = ELEMENT->SET_ATTRIBUTE( NAME = 'number' VALUE = '4711' ).

  RET = DOCUMENT->APPEND_CHILD( NEW_CHILD = ELEMENT ).

* remember <order> node

  PARENT = ELEMENT.

* create node <head>

  ELEMENT = DOCUMENT->CREATE_ELEMENT( NAME = 'head' ).

  RET = PARENT->APPEND_CHILD( NEW_CHILD = ELEMENT ).

* create node <body>

  ELEMENT = DOCUMENT->CREATE_ELEMENT( NAME = 'body' ).

  RET = PARENT->APPEND_CHILD( NEW_CHILD = ELEMENT ).

* find <head> node

  PARENT  = DOCUMENT->FIND_FROM_NAME( NAME = 'head' ).

* create <status>confirmed</status>

  ELEMENT = DOCUMENT->CREATE_ELEMENT( NAME = 'status' ).

  RET = ELEMENT->SET_VALUE( VALUE = 'confirmed' ).

  RET = PARENT->APPEND_CHILD( NEW_CHILD = ELEMENT ).

* create <date format="mm/dd/yyyy">08/15/2001</date>

  ELEMENT = DOCUMENT->CREATE_ELEMENT( NAME = 'date' ).

  RET = ELEMENT->SET_ATTRIBUTE( NAME = 'format' VALUE = 'mm/dd/yyyy' ).

  RET = ELEMENT->SET_VALUE( VALUE = '08/15/2001' ).

  RET = PARENT->APPEND_CHILD( NEW_CHILD = ELEMENT ).

* find <body> node

  PARENT = DOCUMENT->FIND_FROM_NAME( NAME = 'body' ).

* create <item pos="10" units="2" price="17">abap-book</item>

  ELEMENT = DOCUMENT->CREATE_ELEMENT( NAME = 'item' ).

  RET = ELEMENT->SET_ATTRIBUTE( NAME = 'pos'   VALUE = '10' ).

  RET = ELEMENT->SET_ATTRIBUTE( NAME = 'units' VALUE = '2'  ).

  RET = ELEMENT->SET_ATTRIBUTE( NAME = 'price' VALUE = '17' ).

  RET = ELEMENT->SET_ATTRIBUTE( NAME = 'st'    VALUE = '1' ).

  RET = ELEMENT->SET_VALUE( VALUE = 'abap-book' ).

  RET = PARENT->APPEND_CHILD( NEW_CHILD = ELEMENT ).

* create <item pos="20" units="1" price="10">sapr3-cdrom</item>

  ELEMENT = DOCUMENT->CREATE_ELEMENT( NAME = 'item' ).

  RET = ELEMENT->SET_ATTRIBUTE( NAME = 'pos'   VALUE = '20' ).

  RET = ELEMENT->SET_ATTRIBUTE( NAME = 'units' VALUE = '1'  ).

  RET = ELEMENT->SET_ATTRIBUTE( NAME = 'price' VALUE = '10' ).

  RET = ELEMENT->SET_ATTRIBUTE( NAME = 'st'    VALUE = '2' ).

  RET = ELEMENT->SET_VALUE( VALUE = 'sapr3-cdrom' ).

  RET = PARENT->APPEND_CHILD( NEW_CHILD = ELEMENT ).

* create <item pos="30" units="5" price="12">coffee</item>

  ELEMENT = DOCUMENT->CREATE_ELEMENT( NAME = 'item' ).

  RET = ELEMENT->SET_ATTRIBUTE( NAME = 'pos'   VALUE = '30' ).

  RET = ELEMENT->SET_ATTRIBUTE( NAME = 'units' VALUE = '5'  ).

  RET = ELEMENT->SET_ATTRIBUTE( NAME = 'price' VALUE = '10' ).

  RET = ELEMENT->SET_ATTRIBUTE( NAME = 'st'    VALUE = '3' ).

  RET = ELEMENT->SET_VALUE( VALUE = 'coffee' ).

  RET = PARENT->APPEND_CHILD( NEW_CHILD = ELEMENT ).

ENDFORM.                    " create_dom

*&---------------------------------------------------------------------*
*&      Form  render_dom
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_DOCUMENT  text
*----------------------------------------------------------------------*

FORM RENDER_DOM CHANGING P_DOCUMENT.

*

* render DOM into a string

*

  TYPES: C_LINE(50)    TYPE C.

  DATA:  IXML          TYPE REF TO IF_IXML,

         RENDERER      TYPE REF TO IF_IXML_RENDERER,

         STREAMFACTORY TYPE REF TO IF_IXML_STREAM_FACTORY,

         OSTREAM       TYPE REF TO IF_IXML_OSTREAM,

         ENCODING      TYPE REF TO IF_IXML_ENCODING,

         XMLLINE       TYPE C_LINE,

         XMLTAB        TYPE STANDARD TABLE OF C_LINE,

         CHARSET       TYPE STRING,

         SUCCESS       TYPE C.

* create the ixml main factory

  IXML = CL_IXML=>CREATE( ).

* create a streamFactory

  STREAMFACTORY = IXML->CREATE_STREAM_FACTORY( ).

* create a output stream

  OSTREAM = STREAMFACTORY->CREATE_OSTREAM_ITABLE( TABLE = XMLTAB ).

* set an document encoding (optional)

  " charsets: utf-8, utf-16, sap*

  IF NOT CHARSET IS INITIAL.

    ENCODING = IXML->CREATE_ENCODING( CHARACTER_SET = CHARSET

                                      BYTE_ORDER = 0 ).

    SUCCESS  = OSTREAM->SET_ENCODING( ENCODING = ENCODING ).

  ENDIF.

* create a xml renderer

  RENDERER = IXML->CREATE_RENDERER( DOCUMENT = DOCUMENT

                                    OSTREAM  = OSTREAM ).

* render document into output-stream

  IF RENDERER->RENDER( ) <> 0.

*  error

    WRITE: / 'ERROR: document rendering'.

    EXIT.

  ENDIF.

* dump xml table

  ULINE.

  WRITE: /.

  WRITE: / ' RENDERED XML-DATA'.

  WRITE: /.

  LOOP AT XMLTAB INTO XMLLINE.

    XML XMLLINE.

  ENDLOOP.

ENDFORM.                    " render_dom

*---------------------------------------------------------------------*
*       ORM print_tree                                               *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*

FORM PRINT_DOM USING DOCUMENT TYPE REF TO IF_IXML_DOCUMENT.

  DATA: NODE      TYPE REF TO IF_IXML_NODE,

        ITERATOR  TYPE REF TO IF_IXML_NODE_ITERATOR,

        NODEMAP   TYPE REF TO IF_IXML_NAMED_NODE_MAP,

        ATTR      TYPE REF TO IF_IXML_NODE,

        NAME      TYPE STRING,

        PREFIX    TYPE STRING,

        VALUE     TYPE STRING,

        INDENT    TYPE I,

        COUNT     TYPE I,

        INDEX     TYPE I.

  CHECK NOT DOCUMENT IS INITIAL.

  NODE = DOCUMENT.

  ULINE.

  WRITE: /.

  WRITE: /' DOM-TREE'.

  WRITE: /.

  IF NODE IS INITIAL. EXIT. ENDIF.

* create a node iterator

  ITERATOR  = NODE->CREATE_ITERATOR( ).

* get current node

  NODE = ITERATOR->GET_NEXT( ).

* loop over all nodes

  WHILE NOT NODE IS INITIAL.

    INDENT = NODE->GET_HEIGHT( ) * 2.

    INDENT = INDENT + 20.

    CASE NODE->GET_TYPE( ).

      WHEN IF_IXML_NODE=>CO_NODE_ELEMENT.

*       element node

        NAME    = NODE->GET_NAME( ).

        NODEMAP = NODE->GET_ATTRIBUTES( ).

        WRITE: / 'ELEMENT  :'.

        WRITE: AT INDENT NAME COLOR COL_POSITIVE INVERSE.

        IF NOT NODEMAP IS INITIAL.

*         attributes

          COUNT = NODEMAP->GET_LENGTH( ).

          DO COUNT TIMES.

            INDEX  = SY-INDEX - 1.

            ATTR   = NODEMAP->GET_ITEM( INDEX ).

            NAME   = ATTR->GET_NAME( ).

            PREFIX = ATTR->GET_NAMESPACE( ).

            VALUE  = ATTR->GET_VALUE( ).

            WRITE: / 'ATTRIBUTE:'.

            WRITE: AT INDENT NAME  COLOR COL_HEADING INVERSE, '=',

                             VALUE COLOR COL_TOTAL   INVERSE.

          ENDDO.

        ENDIF.

      WHEN IF_IXML_NODE=>CO_NODE_TEXT OR

           IF_IXML_NODE=>CO_NODE_CDATA_SECTION.

*       text node

        VALUE  = NODE->GET_VALUE( ).

        WRITE: / 'TEXT     :'.

        WRITE: AT INDENT VALUE COLOR COL_GROUP INVERSE.

    ENDCASE.

*   advance to next node

    NODE = ITERATOR->GET_NEXT( ).

  ENDWHILE.

ENDFORM.                    "traverse_dom

*&---------------------------------------------------------------------*
*&      Form  display_dom
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_DOCUMENT  text
*----------------------------------------------------------------------*

FORM DISPLAY_DOM USING DOCUMENT  TYPE REF TO IF_IXML_DOCUMENT

                       TITEL     LIKE SY-TITLE.

* display document

  CALL FUNCTION 'SDIXML_DOM_TO_SCREEN'
    EXPORTING
      DOCUMENT = DOCUMENT
      TITLE    = TITEL.

ENDFORM.                    " display_dom

*&---------------------------------------------------------------------*
*&      Form  manip_dom
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      <--P_DOCUMENT  text
*----------------------------------------------------------------------*

FORM MANIP_DOM CHANGING DOCUMENT TYPE REF TO IF_IXML_DOCUMENT.

*------------------------------

* document now looks like

*------------------------------

* <?xml version="1.0"?>

* <order number="4711">

*    <head>

*      <status>confirmed</status>

*      <date format="mm/dd/yyyy">08/15/1999</date>

*    </head>

*    <body>

*      <item pos="10" units="2" price="17">abap-book  </item>

*      <item pos="20" units="1" price="10">sapr3-cdrom</item>

*      <item pos="30" units="5" price="12">coffee     </item>

*    </body>

* </order>

*------------------------------

  DATA: ORDER  TYPE REF TO IF_IXML_ELEMENT,

        HEAD   TYPE REF TO IF_IXML_ELEMENT,

        BODY   TYPE REF TO IF_IXML_ELEMENT,

        STATUS TYPE REF TO IF_IXML_ELEMENT,

        DATE   TYPE REF TO IF_IXML_ELEMENT.

* using the method find_from_name

  ORDER  = DOCUMENT->FIND_FROM_NAME( NAME = 'order' ).

  HEAD   = DOCUMENT->FIND_FROM_NAME( NAME = 'head' ).

  BODY   = DOCUMENT->FIND_FROM_NAME( NAME = 'body' ).

  STATUS = DOCUMENT->FIND_FROM_NAME( NAME = 'status' ).

  DATE   = DOCUMENT->FIND_FROM_NAME( NAME = 'date' ).

* update <order>

  DATA: OLD TYPE STRING.

  OLD = ORDER->GET_ATTRIBUTE( NAME = 'number' )."old = 4711

  RET = ORDER->SET_ATTRIBUTE( NAME = '赵博良' VALUE = '001' ). " ret = 0

* update <date>

  RET = DATE->SET_ATTRIBUTE( NAME = 'format' VALUE = 'mm-dd-yyyy' ).

  RET = DATE->SET_VALUE( VALUE = '12-01-2000' ).

* update <item>

  DATA: ITEMS  TYPE REF TO IF_IXML_NODE_COLLECTION,

        ITEM   TYPE REF TO IF_IXML_ELEMENT,

        NODE   TYPE REF TO IF_IXML_NODE,

        VAL    TYPE STRING,

        IDX    TYPE I,

        LEN    TYPE I.

  ITEMS = BODY->GET_ELEMENTS_BY_TAG_NAME( NAME = 'item' ).

  LEN = ITEMS->GET_LENGTH( ).

  DO LEN TIMES.

*   get item

    IDX = SY-INDEX - 1.

    IF SY-SAPRL >= '610'."gui 的版本???????

*     REL >= 6.10: we use simple cast

      ITEM ?= ITEMS->GET_ITEM( INDEX = IDX ).

    ELSE.

*     REL < 6.10: explicit query_interface is required

      NODE  = ITEMS->GET_ITEM( INDEX = IDX ).

      ITEM ?= NODE->QUERY_INTERFACE( IID = IXML_IID_ELEMENT ).

    ENDIF.

*   change pos

    VAL = SY-INDEX.

    RET = ITEM->SET_ATTRIBUTE( NAME = 'pos' VALUE = VAL ).

*   remove attr st='X'

    RET = ITEM->REMOVE_ATTRIBUTE( NAME = 'st' ).  "删除了st 节点

*   add attr ln='X'

    RET = ITEM->SET_ATTRIBUTE( NAME = 'idx' VALUE = VAL ).

  ENDDO.

*------------------------------

* document now looks like

*------------------------------

* <?xml version="1.0" ?>

* <order number="4711" type="001">

*   <head>

*     <status>confirmed</status>

*     <date format="mm-dd-yyyy">12-01-2000</date>

*   </head>

*   <body>

*     <item pos="1" units="2" price="17" idx="1">abap-book</item>

*     <item pos="2" units="1" price="10" idx="2">sapr3-cdrom</item>

*     <item pos="3" units="5" price="10" idx="3">coffee</item>

*   </body>

* </order>

*------------------------------

ENDFORM.                    " manip_dom

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matinal:SAP ABAP 生成XML的例子 的相关文章

  • Mozilla WebExtension API 存储 - 使用和不使用断点进行调试会导致不同的输出

    大家好 我正在尝试为 Mozilla Firefox 浏览器实现一个附加组件 以下脚本显示了我已经成功集成的一个后台脚本 它使用 Mozilla WebExtension API 存储 它被执行了 但浏览器控制台上的日志让我感到惊讶 我交替
  • 绑定 popstate 事件不起作用

    我尝试在浏览器的控制台中输入以下代码 window onpopstate function alert 1 然后单击后退按钮 没有显示任何警报 难道我做错了什么 或者是否不允许将 popstate 事件绑定到控制台的页面 使用 Chrome
  • Golang 结构的 XML 和 JSON 标签?

    我有一个可以根据 HTTP 请求标头输出为 JSON 或 XML 的应用程序 我可以通过将正确的标签添加到我正在使用的结构中来实现正确的输出 但我不知道如何为 JSON 和 XML 指定标签 例如 序列化以纠正 XML type Foo s
  • 使用 babel env 预设时,展开运算符出现语法错误

    我正在努力 现代化 meern io 入门样板 https github com Hashnode mern starter通过替换巴别塔es2015 and stage 0预设为env 然而 似乎env预设无法识别以下片段client m
  • 在动态创建的元素的onclick函数的属性中传递一个字符串

    我试图在动态创建的锚元素的 onClick 事件处理函数的参数中传递一个字符串 请参阅小提琴http jsfiddle net shmdhussain bXYe4 http jsfiddle net shmdhussain bXYe4 我无
  • 无需重定向的 HTML 页面提交

    有没有什么方法可以在不使用ajax的情况下提交html表单而无需从当前页面重定向 你可以设置一个target 为您form 这样您就可以将表单提交到新选项卡 target blank 或一个小的 隐藏的iframe target nameo
  • 指定 HTML5 输入类型 = 日期的值输出?

    我想将本机日期选择器添加到我的应用程序中 该应用程序当前使用遗留的本地系统 日期输入支持尚未广泛普及 但如果我可以基于兼容性提供这两种实现 那就太理想了 有没有办法指定 HTML 日期选择器给出的值的输出 歌剧的默认设置是yyyy mm d
  • 插件 gulp-babel 错误:插件/预设文件不允许导出对象,只能导出函数

    我现在尝试在我的 Ionic v1 应用程序中使用 JavaScript 2015 ES6 包 json name test version 1 0 0 dependencies ionic native deeplinks 4 18 0
  • 如何使用 github 托管外部 CSS 文件?

    我将 css 上传到 github 然后转到网站上的文件并单击 raw 选项 我尝试将其添加到网页中 但 chrome 给出以下错误 资源解释为样式表 但使用 MIME 类型 text plain 进行传输 https raw github
  • 公开闭包内的方法

    当我们在闭包内创建一个方法时 该方法将成为该闭包的私有方法 并且在我们以某种方式公开它之前无法访问它 怎么可能暴露呢 您可以返回对它的引用 var a function var b function I m private alert go
  • NodeJS - 将相对路径转换为绝对路径

    In my 文件系统我的工作目录在这里 C temp a b c d 在 b bb 下有文件 tmp txt C temp a b bb tmp txt 如果我想从工作目录转到该文件 我将使用以下路径 bb tmp txt 如果该文件不存在
  • 为什么浏览器允许onmousedown JS改变href?

    我很长时间以来都注意到 当您尝试复制链接位置或在 Facebook 上打开链接时 它会修改链接并将其传递给l php 例如 我可以被发送到 http www facebook com l php u http 3A 2F 2Fwww goo
  • iPhone 上的锁定方向 UIWebView

    有没有办法锁定 UIWebView 的方向 使用 Obj C JS 还是 Html 我不想有按钮或任何东西 我只想在应用程序打开时将其锁定为纵向 好像这个堆栈溢出帖子 https stackoverflow com questions 43
  • JS:修改 JS 对象中的值/对

    我正在尝试找出修改对象的最佳方法 而无需三次写出类似的对象 所以我有这三个对象 var object1 start start end end type 1 var object2 start start end end type 2 va
  • 即使我的情况按预期发生变化,Angular ngClass 也不会更新我的课程

    我正在创建的模板中有类似的内容 div class nng 3 div 价值app layout isNavbarFixed等用零或一初始化 并且页面第一次加载时 适当的类被插入到我的div 不过 此后通
  • 当rest api应用程序服务器(express)和Angulars js应用程序在不同端口上运行时出现Cors问题

    我有用node js编写的rest api应用程序 express在端口3000上运行 而angularjs应用程序在同一服务器上的端口9001上运行 从 angularjs 应用程序调用 rst api 时 出现了 cors 问题 在re
  • 获取类中的所有静态 getter

    假设我有这个类 我像枚举一样使用它 class Color static get Red return 0 static get Black return 1 有没有类似的东西Object keys to get Red Black 我使用
  • 测试 jQueryUI 是否已加载

    我正在尝试调试网站 并且我认为 jQueryUI 可能未正确加载 如何测试 jQueryUI 是否已加载 if jQuery ui UI loaded OR if typeof jQuery ui undefined UI loaded 应
  • HTML5 地理定位 - 在 iOS 上无法始终工作

    目前正在使用 HTML5 地理定位 我已经在所有网络浏览器上测试了它 它似乎工作正常 然而 当我在 iPad 上测试地理定位时 它在 iPad mini 上始终有效 但当我将其放在更大的 iPad iPad 2 上时 位置似乎并不总是有效
  • 如何强制下载图片?

    我的页面上有一个动态生成的图像 如下所示 img src 我不想告诉我的用户右键单击图像并点击保存 而是想公开一个下载链接 单击该链接将提示下载图像 如何实现这一目标 最初我在 js 中尝试这样做 var path my image att

随机推荐

  • 如何查看文件的MD5值?

    MD5 什么是MD5 md5是一种信息摘要算法 是计算机广泛使用的杂凑算法之一 又译摘要算法 哈希算法 它可以从一个字符串或一个文件中按照一定的规则生成一个特殊的字符串 这个特殊的字符串就被称之为摘要 我理解就是从文件中摘一些信息片段加工而
  • R语言colorRampPalette函数-创建颜色梯度(渐变色)

    在绘热图时 需要将数值映射到不同的颜色上 这时就需要一系列的颜色梯度 colorRampPalette 函数支持自定义的创建一系列的颜色梯度 代码示例 gt colors lt colorRampPalette c blue red 5 g
  • windows加固-服务安全

    禁用TCP IP上的NetBIOS NETBIOS 在安装了TCP IP协议的同时 NetBIOS也会被作为默认设置安装到系统中 NetBIOS 协议所使用的端 是139端口 139 端 的开放意味硬盘可能会在网络中共享 网上黑客也可通Ne
  • 网络地址转换的类型及特点

    1 网络地址转换的类型及特点 NAT有三种类型 静态NAT StaticNAT 动态地址NAT PooledNAT 网络地址端口转换NAPT Port LevelNAT 静态NAT 指将内部网络的私有IP地址转换为公有IP地址 IP地址对是
  • On Distillation of Guided Diffusion Models

    本论文是解决什么问题的 无分类器引导扩散模型最近被证明在高分辨率图像生成方面非常有效 无分类器的引导扩散模型的缺点是 它们在推理时计算昂贵 原因是 因为它们需要评估两个扩散模型 一个类条件模型和一个无条件模型 数十到数百次 这篇论文提出的解
  • Linux Ubuntu安装教程

    1 创建新的虚拟机 2 选择 典型 点击 下一步 3 选择 稍后安装操作系统 点击 下一步 4 选择 Linux 版本选择 ubuntu 64位 点击 下一步 5 虚拟机名称输入 ubuntu 64位 点击 浏览 更改系统的安装位置 建议安
  • MySQL基础命令学习

    MySQL安装请看上一篇MySQL server安装记录 进入到数据库管理系统 DBMS C Windows System32 gt cd D mysql 8 0 22 winx64 bin D mysql 8 0 22 winx64 bi
  • Web自动化测试(5)-POM

    POM设计模式 目录 POM设计模式 1 简介 2 简单示例 3 UnitTest框架测试用例执行顺序 4 数据驱动 5 简单示例 1 简介 POM Page Object Model 设计模式又被称为页面对象模型 其核心思想是将web项目
  • 面向小白的最全Python可视化教程,超全的

    今天小编总结归纳了若干个常用的可视化图表 并且通过调用plotly matplotlib altair bokeh和seaborn等模块来分别绘制这些常用的可视化图表 最后无论是绘制可视化的代码 还是会指出来的结果都会通过调用streaml
  • Vue3全网最细介绍使用

    文章目录 一 Vue3介绍 二 Vue3项目创建 三 Setup 四 ref与reactive 五 setup context 六 计算属性 七 监听属性 八 Vue3生命周期 九 自定义hook函数 十 toRef 一 Vue3介绍 1
  • 思科命令配置总结

    Packet tracer 6 0 交换机命令配置 1 基本配置 Switch gt enable 用户模式 Switch configure terminal 特权模式 Switch config 全局模式 Switch config h
  • SDN-Mininet模拟多数据中心带宽实验

    一 实验目的 通过Mininet模拟搭建基于不同数据中心的网络拓扑 掌握多数据中心网络拓扑的构建 熟悉网络性能测试工具lperf 根据实验测试SDN网络的性能 通过程序生成真实网络流量 二 数据中心拓扑逻辑网络 存在线路冗余 多条链路可达
  • C语言提取(key,value)键值对

    include stdio h include stdlib h include string h 去除空格 int trim str char inBuf char outBuf int i 0 j strlen inBuf 1 int
  • nginx 之正则表达式(一)

    1 元字符 匹配除换行符以外的任意字符 w 匹配字母或数字或下划线或汉字 s 匹配任意的空白符 d 匹配数字 b 匹配单词的开始或结束 匹配字符串的开始 匹配字符串的结束 2 重复 重复零次或多次 重复一次或多次 重复零次或一次 n 重复n
  • FTP被动模式连接被拒绝(FTP passive mode connection refused)

    I m creating an ftp client and I have a problem First I create a socket where I sent USER and PASS then PASV a receive I
  • 软件工程 第一章 软件工程概述

    1 什么是软件 软件是计算机系统中与硬件相互依存的另一部分 它是包括程序 数据及其相关文档的完整集合 程序 按事先设计的功能和性能需求执行的指令序列 数据 程序能正常操纵信息的数据结构 gt 软件的核心 文档 与程序开发 维护和使用有关的图
  • Java中Stream详细使用教程

    1 java8中Stream流以及lambda的使用 stream可以将需要处理的集合元素看做流操作 是结合对象功能的一个增强 lambda表达式与stream结合使用 可以更好的对集合进行遍历 筛选 排序 聚合 分组 stream特性 不
  • Google Chrome浏览器无法翻译网页怎么办?

    最近喜欢上了一个数据分析的python脚本 可以直接出html版的数据分析报告 但是指标都是英文的 实在是看不懂 就想到了要用网页翻译这个功能 但是发现chrome浏览器不能翻译了 找了很多办法都没有解决 也是找了很久 尝试着找扩展属性包
  • mysql多表查询--实例

    1 创建student和score表 CREATE TABLE student id INT 10 NOT NULL UNIQUE PRIMARY KEY name VARCHAR 20 NOT NULL sex VARCHAR 4 bir
  • matinal:SAP ABAP 生成XML的例子

    REPORT ZXML A SET EXTENDED CHECK OFF TYPE POOLS IXML Report T DOM MANIPULATE shows how to manipulate a dom tree