gpt4 book ai didi

c - 如何获取 xmlHashTable 的键? (libxml2)

转载 作者:太空宇宙 更新时间:2023-11-04 02:35:07 26 4
gpt4 key购买 nike

我正在使用库 libxml2 来解析 XML 文档。然后我在这个库中看到了 xmlHashTable。是否可以获取 xmlHashTable 的所有键?我想将所有键存储在一个数组中。

XML 文档是:

<?xml version="1.0" encoding="UTF-8"?>

<?type-proto key="MIPRegistrationRequest" value="mip" ?>
<?avp-proto key="Example-AVP" value="data" ?>

<!DOCTYPE dictionary SYSTEM "dictionary.dtd" [
<!-- Any files added here need to be added to Makefile.am and
packaging/nsis/wireshark.nsi -->

<!ENTITY nasreq SYSTEM "nasreq.xml">
<!ENTITY eap SYSTEM "eap.xml">
<!ENTITY mobileipv4 SYSTEM "mobileipv4.xml">
<!ENTITY chargecontrol SYSTEM "chargecontrol.xml">
<!ENTITY sunping SYSTEM "sunping.xml">
<!ENTITY TGPP SYSTEM "TGPP.xml">
<!ENTITY TGPP2 SYSTEM "TGPP2.xml">
<!ENTITY sip SYSTEM "sip.xml">
<!ENTITY etsie2e4 SYSTEM "etsie2e4.xml">
<!ENTITY Ericsson SYSTEM "Ericsson.xml">
<!ENTITY mobileipv6 SYSTEM "mobileipv6.xml">
<!ENTITY Cisco SYSTEM "Cisco.xml">
<!ENTITY Starent SYSTEM "Starent.xml">
<!ENTITY Vodafone SYSTEM "Vodafone.xml">
<!ENTITY AlcatelLucent SYSTEM "AlcatelLucent.xml">
<!ENTITY Nokia SYSTEM "Nokia.xml">
<!ENTITY NokiaSolutionsAndNetworks SYSTEM "NokiaSolutionsAndNetworks.xml">
<!ENTITY HP SYSTEM "HP.xml">
<!ENTITY Oracle SYSTEM "Oracle.xml">
<!ENTITY Custom SYSTEM "Custom.xml">
]>
<dictionary>
...
<dictionary>


我正在尝试获取外部(已解析)实体(例如 nasreq、eap 等)的所有键:

ddict_t *ddict_scan(const char* system_directory, const char* filename) 
{

char *path = g_strconcat((const gchar*) system_directory, (const gchar*)filename, (const gchar *)'\0');
xmlDocPtr p1 = getdoc((const char *)path);
xmlEntitiesTablePtr ptr2 = p1->intSubset->entities;
//to be added
}

xmlEntitiesTable 的类型是xmlHashTable

最佳答案

xmlHashScan()函数(及其挑剔的亲戚),可用于拥有用户提供的 xmlHashScanner库为 xmlHashTable 中的每个条目回调的函数。 xmlHashScanner 被赋予每个条目的名称 作为参数,因此以这种方式组装所有键的列表应该很容易。

关于c - 如何获取 xmlHashTable 的键? (libxml2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38699706/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com