文章目录

  • 建议:
  • 数据区
    • Record Layout
      • FNC\_VALUES
      • AXIS\_PTS\_X
      • 数值型:
      • 坐标轴:
    • 标定量CHARACTERISTIC
      • 数值型标定量
        • Simulink生成A2L中的标定量:
        • 加入地址后的标定量:
        • **CANAPE\_EXT**
      • 一维查表标定量
        • Simulink生成A2L中的标定量:
        • 加入地址后的标定量:
      • 二维查表标定量
        • Simulink生成A2L中的标定量:
        • 加入地址后的标定量:
    • 观测量MEASUREMENT
      • 数值观测量
        • Simulink生成A2L中的观测量:
        • 加入地址后的观测量:
      • 一维数组观测量
        • Simulink生成A2L中的观测量:
        • 加入地址后的观测量:
    • Conversion Method
    • GROUP
  • A2L文件预定义类型
    • datatype
    • Type
    • ConversionType
      • COEFFS-可选参数
      • COEFFS\_LINEAR-可选参数
      • FORMULA-可选参数
      • REF\_UNIT-可选参数
      • STATUS\_STRING\_REF-可选参数
    • IndexMode-针对于数据
    • indexorder-针对于坐标轴
    • addrtype
    • AxisType

对于一个完整的A2L文件,应该包含总线的信息,如果是can总线应该包含波特率、CAN ID等,其次就是支持实现的功能CTO/DTO等,应该还有观测量和标定量的信息(地址,名称等),一般simulink生成的A2L中是不带地址信息的,需要后面通过带有地址信息的可执行文件来 填充地址,一般采用工具自动实现填充
为了方便理解,将A2L的内容分为两个区: 协议区和数据区。


A2L文件大部分内容都是属于数据区,存放了数据的描述信息。本文先介绍数据区。

建议:

若文中类容的参数定义看不懂,可以ctrl+f搜索本文,应该可以找到对应的解释。或者直接参考ASAM MCD-2

数据区

Record Layout

为A2L文件中的其他变量提供布局方式

FNC_VALUES

有4个参数:
Position:table values在structure中的位置,基本都是1
DataType:见A2L文件预定义类型[datatype类型],根据实际定义变量的类型来
IndexMode:见A2L文件预定义类型[IndexMode类型],
AddressType:见A2L文件预定义类型[addrtype类型]

AXIS_PTS_X

有4个参数:
Position:axis point values在structure中的位置,基本都是1
DataType:见A2L文件预定义类型[datatype类型],根据实际定义变量的类型来
indexorder:见A2L文件预定义类型[indexorder类型],一般都是INDEX_INCR,递增
AddressType:见A2L文件预定义类型[addrtype类型]

数值型:

/begin RECORD_LAYOUT Scalar_BOOLEANFNC_VALUES  1 UBYTE COLUMN_DIR DIRECT/end   RECORD_LAYOUT

坐标轴:

/begin RECORD_LAYOUT Lookup1D_X_FLOAT32_IEEEAXIS_PTS_X  1 FLOAT32_IEEE INDEX_INCR DIRECT/end   RECORD_LAYOUT

基本AddressType都是DIRECT

标定量CHARACTERISTIC

数值型标定量

Simulink生成A2L中的标定量:

/begin CHARACTERISTIC/* Name                   */      MyParameter_C  /* Long Identifier标定量描述        */      "this is my Parameter"/* Type                   */      VALUE /* ECU Address            */      0x0000 /* @ECU_Address@MyParameter_C@ */ /* Record Layout          */      Scalar_UWORD /* Maximum Difference     */      0 /* Conversion Method      */      CM_unitless /* Lower Limit            */      0.0 /* Upper Limit            */      65535.0/end CHARACTERISTIC

在上述标定量中,可以看到标定参数以下信息:

名称,描述,类型,地址(没有给值),布局(A2L文件中Record Layout定义)

Maximum Difference:关于表值调整的最大浮动(注:该值被解释为绝对值,而不是百分比)

转换方法(A2L文件中Conversion Method定义),最小值,最大值

加入地址后的标定量:

  /begin CHARACTERISTIC MyParameter_C "this is my Parameter"VALUE 0x80182F3C Scalar_UWORD_S1 0 CM_unitless_S1 0 65535SYMBOL_LINK "MyParameter_C" 0/begin IF_DATA CANAPE_EXT 100LINK_MAP "MyParameter_C" 0x80182F3C 0 0 0 0 0 0/end IF_DATA/end CHARACTERISTIC

由于是多个A2L文件融合,并给定地址,所以Record Layout和Conversion Method后都跟了一个参数,用作区分,此处可以看到地址信息已经加入进来了。

多了参数:
SYMBOL_LINK:引用 linker map文件中的符号名称。 后面跟的数字是Offset,符号相对于 linker map文件中符号地址的偏移量,一般都是0
IF_DATA:数据记录,用于描述CHARACTERISTIC的接口特定数据。必须在ASAM MCD-2MC元语言中描述与此关键字相关的参数 ,在
协议区
中定义了CANAPE_EXT结构

CANAPE_EXT

"CANAPE_EXT" struct {int;                       // version number, must be 100taggedstruct {"LINK_MAP" struct {char[256];            // symbol name in MAP filelong;                  // symbol base address in MAP file 基础地址uint;                  // address extension 扩展地址uint;                  // flag: address is relative to DSlong;                  // address offset to the symbol base addressuint;                  // flag: data type information is validuint;                  // data type of symbol in MAP file (CANape internal data type representation)uint;                  // bit offset of the symbol in MAP file};"DISPLAY" struct {long;                  // display colordouble;                // minimal display value (phys)double;                // maximal display value (phys)};"VIRTUAL_CONVERSION" struct {char[256];            // name of the (additional) conversion formula};};};

100,表示的是版本,后面是LINK_MAP中的参数和地址信息

一维查表标定量

Simulink生成A2L中的标定量:

/begin CHARACTERISTIC      /* Name                   */      MyParameter_T/* Long Identifier        */      "this is my Parameter T"/* Characteristic Type    */      CURVE/* ECU Address            */      0x0000 /* @ECU_Address@MyParameter_T@ *//* Record Layout          */      Lookup1D_WORD/* Maxdiff                */      0/* Conversion Method      */      CM_mm/* Lower Limit            */      -500.0/* Upper Limit            */      500.0/begin AXIS_DESCR                 /* Description of X-Axis Points *//* Axis Type            */      COM_AXIS/* Reference to Input   */      Input/* Conversion Method    */      CM_km_h/* Number of Axis Pts   */      6/* Lower Limit          */      0.0/* Upper Limit          */      360.0AXIS_PTS_REF                    MyParameter_Ax/end AXIS_DESCR/end CHARACTERISTIC/begin AXIS_PTS/* Name                   */      MyParameter_Ax/* Long Identifier        */      "This is MyParameter_Ax"/* ECU Address            */      0x0000 /* @ECU_Address@MyParameter_Ax@ *//* Input Quantity         */      Input/* Record Layout          */      Lookup1D_X_UWORD/* Maximum Difference     */      0/* Conversion Method      */      CM_km_h/* Number of Axis Pts     */      6/* Lower Limit            */      0.0/* Upper Limit            */      360.0/end AXIS_PTS

一维查表有两个轴,根据输入值,按X轴查对应的Y轴,得到对应的参数。
相对于数值型标定量,多了轴的描述.Axis Type见预定义类型AxisType
Reference to Input:关于输入量的描述,请参考数据记录(参见MEASUREMENT)。如果未分配输入量,参数“InputQuantity”应设置为"NO_INPUT_QUANTITY"(测量和标定系统必须能够处理这种情况)。
Number of Axis Pts:轴点的最大数量(注:测量和标定系统可以改变characteristic的大小(增加或减少轴点的数量)。轴点的数量不能随意增加,因为测量和标定系统为ECU程序中的每个characteristic保留的地址范围不能更改。)
AXIS_PTS_REF:有关轴点分布的描述,请参考AXIS_PTS记录。
AXIS_PTS主要描述轴的信息,也是标定量的一部分。

加入地址后的标定量:

/begin CHARACTERISTIC MyParameter_T "this is my Parameter T"CURVE 0x801803CC Lookup1D_WORD_S1 0 CM_mm_s_S1 -500 500/begin AXIS_DESCRCOM_AXIS Input CM_km_h_S1 6 0 360AXIS_PTS_REF MyParameter_Ax/end AXIS_DESCRSYMBOL_LINK "MyParameter_T" 0/begin IF_DATA CANAPE_EXT 100LINK_MAP "MyParameter_T" 0x801803CC 0 0 0 0 0 0/end IF_DATA/end CHARACTERISTIC/begin AXIS_PTS MyParameter_Ax "This is MyParameter_Ax"0x801803A6 Input Lookup1D_X_UWORD_S1 0 CM_km_h_S1 6 0 360SYMBOL_LINK "MyParameter_Ax" 0/begin IF_DATA CANAPE_EXT 100LINK_MAP "MyParameter_Ax" 0x801803A6 0 0 0 0 0 0/end IF_DATA/end AXIS_PTS

SYMBOL_LINK和CANAPE_EXT在上面一节已经说过,此处不再重复。

对于一维查表来说,ECU地址都是标定数组的首地址。

二维查表标定量

Simulink生成A2L中的标定量:

/begin CHARACTERISTIC      /* Name                   */      MyParameter_M/* Long Identifier        */      "This is MyParameter_M"/* Characteristic Type    */      MAP/* ECU Address            */      0x0000 /* @ECU_Address@MyParameter_M@ *//* Record Layout          */      Lookup2D_UBYTE/* Maxdiff                */      0/* Conversion Method      */      CM_percent/* Lower Limit            */      0.0/* Upper Limit            */      100.0/begin AXIS_DESCR                 /* Description of X-Axis Points *//* Axis Type            */      COM_AXIS/* Reference to Input   */      Input1/* Conversion Method    */      CM_unitless/* Number of Axis Pts   */      3/* Lower Limit          */      0.0/* Upper Limit          */      10.0AXIS_PTS_REF                    MyParameter_x_Ax/end AXIS_DESCR/begin AXIS_DESCR                 /* Description of Y-Axis Points *//* Axis Type            */      COM_AXIS/* Reference to Input   */      Input2/* Conversion Method    */      CM_km_h/* Number of Axis Pts   */      9/* Lower Limit          */      0.0/* Upper Limit          */      360.0AXIS_PTS_REF                    MyParameter_y_Ax/end AXIS_DESCR/end CHARACTERISTIC/begin AXIS_PTS/* Name                   */      MyParameter_x_Ax/* Long Identifier        */      "This is MyParameter_x_Ax"/* ECU Address            */      0x0000 /* @ECU_Address@MyParameter_x_Ax@ *//* Input Quantity         */      Input1/* Record Layout          */      Lookup2D_X_UBYTE/* Maximum Difference     */      0/* Conversion Method      */      CM_uint8_unitless/* Number of Axis Pts     */      3/* Lower Limit            */      0.0/* Upper Limit            */      10.0/end AXIS_PTS/begin AXIS_PTS/* Name                   */      MyParameter_y_Ax/* Long Identifier        */      "This is MyParameter_y_Ax"/* ECU Address            */      0x0000 /* @ECU_Address@MyParameter_y_Ax@ *//* Input Quantity         */      Input2/* Record Layout          */      Lookup2D_X_UWORD/* Maximum Difference     */      0/* Conversion Method      */      CM_km_h/* Number of Axis Pts     */      9/* Lower Limit            */      0.0/* Upper Limit            */      360.0/end AXIS_PTS

二维查表相对于一维查表只是多了一个Y轴,根据两个输入值,查X轴和Y轴,共同决定最终的输出值,查的map为二维数组

加入地址后的标定量:

/begin CHARACTERISTIC MyParameter_M "This is MyParameter_M"MAP 0x801830F6 Lookup2D_UBYTE_S1 0 CM_percent_S1 0 100/begin AXIS_DESCRCOM_AXIS Input1 CM_unitless_S1 3 0 10AXIS_PTS_REF MyParameter_x_Ax/end AXIS_DESCR/begin AXIS_DESCRCOM_AXIS Input2 CM_km_h_S1 9 0 360AXIS_PTS_REF MyParameter_y_Ax/end AXIS_DESCRSYMBOL_LINK "MyParameter_M" 0/begin IF_DATA CANAPE_EXT 100LINK_MAP "MyParameter_M" 0x801830F6 0 0 0 0 0 0/end IF_DATA/end CHARACTERISTIC/begin AXIS_PTS MyParameter_x_Ax "This is MyParameter_x_Ax"0x80183443 Input1 Lookup2D_X_UBYTE_S1 0 CM_unitless_S1 3 0 10SYMBOL_LINK "MyParameter_x_Ax" 0/begin IF_DATA CANAPE_EXT 100LINK_MAP "MyParameter_x_Ax" 0x80183443 0 0 0 0 0 0/end IF_DATA/end AXIS_PTS/begin AXIS_PTS MyParameter_y_Ax "This is MyParameter_y_Ax"0x801830A4 CDCInput_VehSpd Lookup2D_X_UWORD_S1 0 CM_km_h_S1 9 0 360SYMBOL_LINK "MyParameter_y_Ax" 0/begin IF_DATA CANAPE_EXT 100LINK_MAP "MyParameter_y_Ax" 0x801830A4 0 0 0 0 0 0/end IF_DATA/end AXIS_PTS

轴的定义不一定和map在一起,因为可能很多地方都会用到这个轴,本文放在一起只是为了好看一些。
此处MyParameter_M的地址表示为二维数组的首地址

观测量MEASUREMENT

数值观测量

Simulink生成A2L中的观测量:

/begin MEASUREMENT/* Name                   */      MyMEASUREMENT/* Long identifier        */      "This is MyMEASUREMENT "/* Data type              */      UBYTE/* Conversion method      */      CM_unitless/* Resolution (Not used)  */      0/* Accuracy (Not used)    */      0/* Lower limit            */      0.0/* Upper limit            */      1.0ECU_ADDRESS                       0x0000 /* @ECU_Address@MyMEASUREMENT@ *//end MEASUREMENT

观测量中有两个参数未使用:

Resolution:最小可能的位变化,也就是精度

Accuracy:可能与精确值的偏差(%),其他的参数应该都比较好理解了。

加入地址后的观测量:

 /begin MEASUREMENT MyMEASUREMENT "This is MyMEASUREMENT"UBYTE CM_unitless 0 0 0 1ECU_ADDRESS 0x700132C0SYMBOL_LINK "MyMEASUREMENT" 0/begin IF_DATA CANAPE_EXT 100LINK_MAP "MyMEASUREMENT" 0x700132C0 0 0 0 0 0 0/end IF_DATA/end MEASUREMENT

一维数组观测量

Simulink生成A2L中的观测量:

 /begin MEASUREMENT/* Name                   */      MyMEASUREMENT_T/* Long identifier        */      "This is MyMEASUREMENT_T"/* Data type              */      UBYTE/* Conversion method      */      CM_boolean/* Resolution (Not used)  */      0/* Accuracy (Not used)    */      0/* Lower limit            */      0/* Upper limit            */      1/* Array Size             */ARRAY_SIZE                        4ECU_ADDRESS                       0x0000 /* @ECU_Address@MyMEASUREMENT_T@ *//end MEASUREMENT

相对于数值,数组多了一个ARRAY_SIZE,很好理解,也就是数组的大小

加入地址后的观测量:

 /begin MEASUREMENT MyMEASUREMENT_T "This is MyMEASUREMENT_T"UBYTE CM_boolean_S2 0 0 0 1ECU_ADDRESS 0x70013456MATRIX_DIM 4 1 1SYMBOL_LINK "MyMEASUREMENT_T" 0/begin IF_DATA CANAPE_EXT 100LINK_MAP "MyMEASUREMENT_T" 0x70013456 0 0 0 0 0 0/end IF_DATA/end MEASUREMENT

此处ARRAY_SIZE变成了MATRIX_DIM,

MATRIX_DIM:显示多维度量的大小和维度。如果使用MATRIX_DIM关键字,则不需要ARRAY_SIZE选项。但是,如果同时使用关键字ARRAY_SIZE和MATRIX_DIM,则ARRAY_SIZE中的结果值必须与MATRIX_DIM的xDimyDimzDim相同。如果缺少关键字,则数组只有一个尺寸为ARRAY_SIZE的维度。

参数:

xDim-x维度中的值数

yDim-y维度中的值数

zDim-z维度中的值数

此处MATRIX_DIM4 1 1 和ARRAY_SIZE 4表示的结果是一样的。

Conversion Method

数据的转换方式

必选参数有:名称Name,LongIdentifier描述,ConversionType 转换类型,Format精度,Units单位

可选参数有:COEFFS,COEFFS_LINEAR,COMPU_TAB_REF,FORMULA,REF_UNIT(见预定义类型中的对应项)

/begin COMPU_METHOD/* Name of CompuMethod    */      CM_unitless/* Long identifier        */      "This is My CompuMethod"/* Conversion Type        */      RAT_FUNC/* Format                 */      "%3.0"/* Units                  */      "unitless"/* Coefficients           */      COEFFS 0 1 0 0 0 1/end COMPU_METHOD

此处Conversion Type设置为RAT_FUNC,则为有理转换,0 1 0 0 0 1代表abcdef参数。

GROUP

将标定量和观测量分类,对于Simulink模型来说,是按模块来分类的。每个模块会单独划分一个组。

在标定软件中,可以看到组的定义,及里面的标定量和观测量。

 /begin GROUP /* Name                   */       S252_MyGROUP /* Long identifier        */       "This is S252_MyGROUP"/begin REF_CHARACTERISTICMyParameter_CMyParameter_TMyParameter_M/end REF_CHARACTERISTIC/begin REF_MEASUREMENTMyMEASUREMENTMyMEASUREMENT_T/end REF_MEASUREMENT/end GROUP

Name:在ASAM MCD-2MC模块的所有组中,组的名称必须是唯一的,即模块中不得有另一个具有相同标识符的组对象。

REF_CHARACTERISTIC:后面定义需要加入组的标定量,只能是CHARACTERISTIC或AXIS_PTS.

REF_MEASUREMENT:后面定义需要加入组的观测量

对应到实际A2L中,只是组名称后面加了一个字符,用来区分不同的A2L的融合。

A2L文件预定义类型

datatype

Data Type

Signedness

Bit Width

Format

UBYTE

unsigned

8

unsigned integer

1字节无符号整型

SBYTE

signed

8

two's complement integer

1字节有符号整型

UWORD

unsigned

16

unsigned integer

2字节无符号整型

SWORD

signed

16

two's complement integer

2字节有符号整型

ULONG

unsigned

32

unsigned integer

4字节无符号整型

SLONG

signed

32

two's complement integer

4字节有符号整型

A_UINT64

unsigned

64

unsigned integer

8字节无符号整型

A_INT64

signed

64

two's complement integer

8字节有符号整型

FLOAT32_IEEE

signed

32

IEEE 754 single precision

4字节浮点型

FLOAT64_IEEE

signed

64

IEEE 754 double precision

8字节浮点型

Type

Type类型

描述

VALUE

CURVE

一维查表

MAP

二维查表

CUBOID

三维查表

CUBE_4

四维查表

CUBE_5

五维查表

VAL_BLK

无轴数组

ASCII

字符串

ConversionType

ConversionType类型

描述

RAT_FUNC

有理转换Rational, f(x)=(axx + bx + c)/(dxx + ex + f)

INT = f(PHYS)

系数a、b、c、d、e、f必须由COEFFS关键字指定

IDENTICAL

不转换,PHYS = INT

FORM

根据FORMULA键字指定的公式进行转换。

LINEAR

以下类型的线性函数:f(x)=ax+b

PHYS=f(INT)

系数a和b必须由COEFFS_LINEAR关键字指定

TAB_INTP

带插值的表格

TAB_NOINTP

无插值的表格

TAB_VERB

字符表转换Verbal Table

对于线性函数,使用ConversionType linear;对于ident函数,使用ConversionType

IDENTICAL。对于非线性函数,必须能够在所使用的AXIS_PTS,、CHARACTERISTIC或MEASUREMENT范围内反转公式。否则,请使用ConversionType FORM.

COEFFS-可选参数

该关键字用于为以下类型的分数有理函数指定系数a、b、c、d、e、f:

f(x)=(axx + bx + c) / (dxx + ex + f)

Example:
COEFFS 0 4 8 0 0 5
/* Control unit internal values of revolutions (INT) is calculated  from */
/* physical values (PHYS: unit of PHYS is [rpm]) as follows: */
/* INT = (4/5) * PHYS/[rpm] + (8/5)          */
/* inverted: PHYS/[rpm] = 1.25 * INT - 2.0   */

COEFFS_LINEAR-可选参数

此关键字用于指定以下类型的线性函数的系数a和b:
f(x)=ax + b

FORMULA-可选参数

用于转换的公式

REF_UNIT-可选参数

此关键字用于引用测量单位(例如,单位类型的对象)。字符串参数单位是冗余信息,因为REF_UNIT引用的记录也包含该信息。仅为了与先前版本的ASAM MCD-2MC兼容,参数REF_UNIT是可选的。

STATUS_STRING_REF-可选参数

此关键字用于将ECU内部值的值范围分为数字部分和文字部分。文字部分可用于可视化状态信息(例如,“传感器未连接”)。

IndexMode-针对于数据

IndexMode类型

描述

COLUMN_DIR

deposited in columns按列存放

ROW_DIR

deposited in rows按行存放

indexorder-针对于坐标轴

indexorder类型

描述

INDEX_INCR

随着地址的增加而增加索引

INDEX_DECR

随着地址的增加而减少索引

addrtype

addrtype类型

描述

PBYTE

相关内存位置有一个指向该表值或轴点值的1字节指针

PWORD

相关内存位置有一个指向该表值或轴点值的2字节指针

PLONG

相关内存位置有一个指向该表值或轴点值的4字节指针

DIRECT

相关的内存位置具有第一个表值或轴点值,所有其他的都跟随递增地址

AxisType

AxisType类型

描述

CURVE_AXIS

曲线轴。此轴类型使用单独的CURVE CHARACTERISTIC来重新缩放轴。参考曲线用于查找轴索引,控制器使用索引值确定CURVE 或MAP中的操作点。

COM_AXIS

对轴点进行分组或对轴点进行描述以进行存放。对于这种轴点变体,轴点值与仿真内存中curve或map的表值分离,并且必须通过特殊的AXIS_PTS数据记录进行描述。对该记录的引用使用关键字'AXIS_PTS_REF'。

FIX_AXIS

这是一条曲线或一张带有虚拟轴点的地图,这些虚拟轴点未存放在EPROM上。轴点可以根据使用关键字FIX_AXIS_PAR,FIX_AXIS_PAR_DIST,FIX_AXIS_PAR_LIST定义的参数计算。无法修改轴点。

RES_AXIS

重新缩放轴。对于这种轴点变体,轴点值为与仿真内存中curve或map的表值分离

并且必须通过特殊的AXIS_PTS数据记录进行描述。对该记录的引用使用关键字'AXIS_PTS_REF'。

STD_AXIS

标准轴

目前用到的就这些参数定义,如果后面遇到新的,还会持续更新~~

你的点赞,收藏,关注,转发是对小弟的最大支持~~~~

建了一个WX公众号,《汽车电子学习笔记》感兴趣可以关注一下,有问题可以与我留言交流~~~

基于can总线的A2L文件解析(1)相关推荐

  1. 【Python文本处理】基于运动路线记录GPX文件解析,心率、速度、时间、功率、踏频、海拔等参数的生成和更改,以及GPX循环拼接

    [Python文本处理]基于运动路线记录GPX文件解析,心率.速度.时间.功率.踏频.海拔等参数的生成和更改,以及GPX循环拼接 GPX文件本身其实就是坐标.海拔.时间.心率等综合性的xml文件 如图 ...

  2. 如何快速生成A2L文件(ASAP2 Studio):基于“前一版本A2L文件+最新map文件”生成新map文件对应A2L文件

    目录 一.ASAP2 Studio概述: 二.如何在ASAP2 Studio中利用"前一版本A2L文件+最新map文件"生成新map文件对应A2L文件: 2.1 在ASAP2 St ...

  3. XCP协议和A2L文件–A2L(ASAP2)解析

    转载自:http://blog.sina.com.cn/s/blog_4adc0d850102ywb2.html ASAP2标准是一个比较复杂的标准,详细的一条一条讲解标准内容并没有太大的价值,我们将 ...

  4. X-Analyser 总线分析软件:CANopen、1939解析、UDS诊断、NMEA2000 协议解析、DBC文件解析、仿真工具、CAN报文分析、仿CANoe曲线显示 CAN仪表模拟器

    X-Analyser 总线分析软件主要用于:CANopen协议解析.J1939解析 J1939地址ISO15765(UDS诊断) .NMEA2000 协议解析.DBC文件解析 DBC仿真工具.CANo ...

  5. python中的doc_基于Python获取docx/doc文件内容代码解析

    这篇文章主要介绍了基于Python获取docx/doc文件内容代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 整体思路: 下载文件并修改后缀 ...

  6. python解析log文件_python解析基于xml格式的日志文件

    大家中午好,由于过年一直还没回到状态,好久没分享一波小知识了,今天,继续给大家分享一波Python解析日志的小脚本. 首先,同样的先看看日志是个啥样. 都是xml格式的,是不是看着就头晕了??没事,我 ...

  7. dom4j工具类_基于DOM4J的XML文件解析类

    XML文件解析分四类方式:DOM解析:SAX解析:JDOM解析:DOM4J解析.其中前两种属于基础方法,是官方提供的平台无关的解析方式:后两种属于扩展方法,它们是在基础的方法上扩展出来的,只适用于ja ...

  8. php解析torrent文件,PHP基于闭包思想实现的BT(torrent)文件解析工具实例详解

    本文实例讲述了PHP基于闭包思想实现的torrent文件解析工具.分享给大家供大家参考,具体如下: PHP对静态词法域的支持有点奇怪,内部匿名函数必须在参数列表后面加上use关键字,显式的说明想要使用 ...

  9. 基于c的xml文件解析(转)

    libxml(一) 摘要 Libxml是个有免费许可的用于处理XML.能轻松跨越多个平台的C语言库.这个指南提供他的基本函数的例子. 绪论 Libxml是个实现读.创建及操纵XML数据功能的C语言库. ...

最新文章

  1. 信息与计算机科学好学吗,计算机科学与技术好学吗?
  2. Java的挥发性修饰符
  3. 什么是3G-SDI光端机?
  4. Mac python Tesseract 验证码识别
  5. [css] 要让Chrome支持小于12px的文字怎么做?
  6. 将桌面文件动态保存到D盘
  7. c++对象模型大总结:第1-4章、对象初探与构造函数
  8. java rtmp录制视频_red5-rtmp-push
  9. qt tabwidget 设置tab 位置_qml创建TabWidget的案例
  10. android qq钱包接入,QQ
  11. 冯乐乐之三,SHADERLAB入门
  12. 343.微生物组研究写作的一般思路
  13. ***WIN2003 PHP服务器的另类技术
  14. Android遥控器开发
  15. 自学Python之后如果不去公司上班,自己可以通过此技能挣什么钱?
  16. 使用 JAVA Swing 构建 Sftp 桌面连接工具
  17. 操作系统课程设计——Shell编程(用c编写一个Linux的外壳Shell)
  18. 清理Xcode占用的Mac硬盘空间
  19. Dynamics 365本地部署版本配置OAuth 2 Password Grant以调用Web API
  20. 视频去水印工具哪个好用

热门文章

  1. matlab 高精度无理数,如何从MatLab上的无理数产生近似分数?
  2. FFmpeg源代码简单分析-其他-日志输出系统(av_log()等)
  3. Linux中不同MTD设备分区,Linux MTD设备总结
  4. 微信小程序 - 基本原理
  5. Chrome 浏览器 模糊的解决方法
  6. LiveData详解
  7. Springboot毕设项目健康在线服务平台26iy0(java+VUE+Mybatis+Maven+Mysql)
  8. 1w存银行一年多少利息_100万存银行1年能有多少钱利息?
  9. Image.save()
  10. 电脑打开“我的电脑”、“资源管理器”很慢的解决办法。