Skip to content

获取属性数量 - XmlGetAttributeCount

函数简介

获取元素的属性数量。

接口名称

XmlGetAttributeCount

DLL调用

c
int32_t XmlGetAttributeCount(int64_t element, int32_t* err);

参数说明

参数名类型说明
element长整数型元素句柄。
err整数型错误码输出参数,可为NULL。

示例

SDK 调用

cpp
#include "OLAPlugServer.h"

OLAPlugServer ola;
// 假设 xmlStr 来自 HTTP 响应、配置文件或文件读取
const char* xmlStr = "<config version=\"1.0\"><user id=\"1\" enabled=\"true\" vip=\"false\" level=\"10\"><name>ola</name><role>admin</role></user></config>";
int32_t err = 0;
int64_t doc = ola.XmlParse(xmlStr, &err);
if (doc != 0 && err == 0) {
    int32_t rootErr = 0;
    int64_t root = ola.XmlGetRootElement(doc, &rootErr);
    int32_t findErr = 0;
    int64_t user = ola.XmlFindElement(root, "user", &findErr);
    int32_t cntErr = 0;
    int32_t count = ola.XmlGetAttributeCount(user, &cntErr);
    ola.XmlFree(doc);
}
csharp
using OLAPlug;

var ola = new OLAPlugServer();
// 假设 xmlStr 来自 HTTP 响应、配置文件或文件读取
string xmlStr = "<config version=\"1.0\"><user id=\"1\" enabled=\"true\" vip=\"false\" level=\"10\"><name>ola</name><role>admin</role></user></config>";
int err;
long doc = ola.XmlParse(xmlStr, out err);
if (doc != 0 && err == 0)
{
    int rootErr;
    long root = ola.XmlGetRootElement(doc, out rootErr);
    int findErr;
    long user = ola.XmlFindElement(root, "user", out findErr);
    int cntErr;
    int count = ola.XmlGetAttributeCount(user, out cntErr);
    ola.XmlFree(doc);
}
python
from OLAPlugServer import OLAPlugServer

ola = OLAPlugServer()
# 假设 xml_str 来自 HTTP 响应、配置文件或文件读取
xml_str = '<config version="1.0"><user id="1" enabled="true" vip="false" level="10"><name>ola</name><role>admin</role></user></config>'
doc, err = ola.XmlParse(xml_str)
if doc != 0 and err == 0:
    root, root_err = ola.XmlGetRootElement(doc)
    user, find_err = ola.XmlFindElement(root, "user")
    count, cnt_err = ola.XmlGetAttributeCount(user)
    ola.XmlFree(doc)
java
import com.olaplug.OLAPlugServer;
import com.sun.jna.ptr.IntByReference;

OLAPlugServer ola = new OLAPlugServer();
// 假设 xmlStr 来自 HTTP 响应、配置文件或文件读取
String xmlStr = "<config version=\"1.0\"><user id=\"1\" enabled=\"true\" vip=\"false\" level=\"10\"><name>ola</name><role>admin</role></user></config>";
IntByReference err = new IntByReference(0);
long doc = com.olaplug.OLAPlugDLLHelper.XmlParse(xmlStr, err);
if (doc != 0 && err.getValue() == 0) {
    IntByReference rootErr = new IntByReference(0);
    long root = com.olaplug.OLAPlugDLLHelper.XmlGetRootElement(doc, rootErr);
    IntByReference findErr = new IntByReference(0);
    long user = com.olaplug.OLAPlugDLLHelper.XmlFindElement(root, "user", findErr);
    IntByReference cntErr = new IntByReference(0);
    ola.XmlFree(doc);
}
cpp
var ola = com("OlaPlug.OlaSoft")
// 假设 xmlStr 来自配置文件等
var xmlStr = "<config version=\"1.0\"><user id=\"1\" enabled=\"true\" vip=\"false\" level=\"10\"><name>ola</name><role>admin</role></user></config>"
var err = 0
var doc = ola.XmlParse(xmlStr, err)
if(doc && err == 0) {
    var rootErr = 0
    var root = ola.XmlGetRootElement(doc, rootErr)
    var findErr = 0
    var user = ola.XmlFindElement(root, "user", findErr)
    var cntErr = 0
    var count = ola.XmlGetAttributeCount(user, cntErr)
    ola.XmlFree(doc)
}
vbscript
Set ola = CreateObject("OlaPlug.OlaSoft")
' 假设 xmlStr 来自配置文件等
xmlStr = "<config version=""1.0""><user id=""1"" enabled=""true"" vip=""false"" level=""10""><name>ola</name><role>admin</role></user></config>"
err = 0
doc = ola.XmlParse(xmlStr, err)
If doc <> 0 And err = 0 Then
    rootErr = 0
    root = ola.XmlGetRootElement(doc, rootErr)
    findErr = 0
    user = ola.XmlFindElement(root, "user", findErr)
    cntErr = 0
    count = ola.XmlGetAttributeCount(user, cntErr)
    ola.XmlFree(doc)
End If
text
.局部变量 ola, OLAPlug
ola.创建 ()
' 假设 xmlStr 来自配置文件等
xmlStr = “<config version=“1.0“><user id=“1“ enabled=“true“ vip=“false“ level=“10“><name>ola</name><role>admin</role></user></config>“
err = 0
doc = ola.XmlParse (xmlStr, err)
.如果真 (doc ≠ 0 且 err = 0)
    rootErr = 0
    root = ola.XmlGetRootElement (doc, rootErr)
    findErr = 0
    user = ola.XmlFindElement (root, "user", findErr)
    cntErr = 0
    count = ola.XmlGetAttributeCount (user, cntErr)
    ola.XmlFree (doc)
.如果真结束
aardio
import OLAPlugServer;
var ola = OLAPlugServer();
// 假设 xmlStr 来自配置文件等
var xmlStr = "<config version=\"1.0\"><user id=\"1\" enabled=\"true\" vip=\"false\" level=\"10\"><name>ola</name><role>admin</role></user></config>";
var err = 0;
var doc = ola.XmlParse(xmlStr, err);
if(doc && !err){
    var rootErr = 0;
    var root = ola.XmlGetRootElement(doc, rootErr);
    var findErr = 0;
    var user = ola.XmlFindElement(root, "user", findErr);
    var cntErr = 0;
    var count = ola.XmlGetAttributeCount(user, cntErr);
    ola.XmlFree(doc);
}
text
变量 ola <类型 = OLAPlugServer>
ola = 新建 OLAPlugServer
// 假设 xmlStr 来自配置文件等
文本型 xmlStr = "<config version=\"1.0\"><user id=\"1\" enabled=\"true\" vip=\"false\" level=\"10\"><name>ola</name><role>admin</role></user></config>"
整数 err = 0
长整数 doc = ola.XmlParse(xmlStr, err)
如果真 (doc ≠ 0 且 err = 0)
{
    整数 rootErr = 0
    长整数 root = ola.XmlGetRootElement(doc, rootErr)
    整数 findErr = 0
    长整数 user = ola.XmlFindElement(root, "user", findErr)
    整数 cntErr = 0
    整数 count = ola.XmlGetAttributeCount(user, cntErr)
    ola.XmlFree(doc)
}
cpp
#include "OLAPlugServer.h"

OLAPlugServer ola;
// 假设 xmlStr 来自 HTTP 响应、配置文件或文件读取
const char* xmlStr = "<config version=\"1.0\"><user id=\"1\" enabled=\"true\" vip=\"false\" level=\"10\"><name>ola</name><role>admin</role></user></config>";
int32_t err = 0;
int64_t doc = ola.XmlParse(xmlStr, &err);
if (doc != 0 && err == 0) {
    int32_t rootErr = 0;
    int64_t root = ola.XmlGetRootElement(doc, &rootErr);
    int32_t findErr = 0;
    int64_t user = ola.XmlFindElement(root, "user", &findErr);
    int32_t cntErr = 0;
    int32_t count = ola.XmlGetAttributeCount(user, &cntErr);
    ola.XmlFree(doc);
}

原生 DLL 调用

cpp
long instance = CreateCOLAPlugInterFace();
const char* xmlStr = "<config version=\"1.0\"><user id=\"1\" enabled=\"true\" vip=\"false\" level=\"10\"><name>ola</name><role>admin</role></user></config>";
int err = 0;
long doc = XmlParse(instance, xmlStr, &err);
if (doc != 0 && err == 0) {
    int rootErr = 0;
    long root = XmlGetRootElement(instance, doc, &rootErr);
    int findErr = 0;
    long user = XmlFindElement(instance, root, "user", &findErr);
    int cntErr = 0;
    int count = XmlGetAttributeCount(instance, user, &cntErr);
    XmlFree(instance, doc);
}
csharp
using System.Runtime.InteropServices;
using System.Text;

[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern long CreateCOLAPlugInterFace();

long instance = CreateCOLAPlugInterFace();
string xmlStr = "<config version=\"1.0\"><user id=\"1\" enabled=\"true\" vip=\"false\" level=\"10\"><name>ola</name><role>admin</role></user></config>";
int err = 0;
long doc = XmlParse(instance, xmlStr, err);
if (doc != 0 && err == 0)
{
    int rootErr = 0;
    long root = XmlGetRootElement(instance, doc, rootErr);
    int findErr = 0;
    long user = XmlFindElement(instance, root, "user", findErr);
    int cntErr = 0;
    int count = XmlGetAttributeCount(instance, user, &cntErr);
    XmlFree(instance, doc);
}
python
from ctypes import CDLL, c_int, c_int64, create_string_buffer

ola = CDLL("OLAPlug_x64.dll")
ola.CreateCOLAPlugInterFace.restype = c_int64
instance = ola.CreateCOLAPlugInterFace()
xml_str = b'<config version="1.0"><user id="1" enabled="true" vip="false" level="10"><name>ola</name><role>admin</role></user></config>'
err = c_int(0)
doc = ola.XmlParse(instance, xml_str, err)
if doc and err.value == 0:
    root_err = c_int(0)
    root = ola.XmlGetRootElement(instance, doc, root_err)
    find_err = c_int(0)
    user = ola.XmlFindElement(instance, root, b"user", find_err)
    int cntErr = 0;
    int count = XmlGetAttributeCount(instance, user, &cntErr);
    ola.XmlFree(instance, doc)

返回值

返回值说明
非 0返回 属性数量。
0失败。

注意事项

项目说明
如果元素没有属性如果元素没有属性,返回0。
可用于判断元素是否有属性可用于判断元素是否有属性。