libxml2 相关问题

用于解析XML文档的软件库。

在 Win32 中构建最新的 iconv 和 libxml2 二进制文件

我正在尝试让 MinGW 和 MSYS 工作,以便我可以在 Windows 中构建 iconv 和 libxml2,但我发现 ./configure 和 make 给出了许多与 BSD/Unix 相关的错误,这些错误不够具体。 ..

回答 7 投票 0

Python 中支持 XPath 2.0 的库

是否可以在Python中使用XPath 2.0函数,例如starts-with()、ends-with()和contains()?我试图使用 lxml 和 defusedxml,但不幸的是它们不支持任何这些功能......

回答 3 投票 0

在没有root权限的情况下构建libxml2

我正在尝试在没有root权限的高性能集群上构建libxml2。 我这样做(首先按照设法安装 li 的人的指示加载可能的依赖项...

回答 1 投票 0

静态链接 libxml2 时出错

尝试使用 libxml2 静态构建应用程序时出现如下错误 对“__imp_xmlTextReaderRead”的未定义引用 删除 -static 选项它可以完美地工作。 我使用的命令是: 克...

回答 1 投票 0

当来自 xmlDoc 的 xmlFreeNode 和 xmlNewChild 时,libxml2 发生内存泄漏

我正在构建一个程序,使用 libxml2 v2.13 在两个 xml 文件之间进行合并验证。 总之,在尝试验证 DOM 之间的一些合并时(使用

回答 1 投票 0

Kotlin/Native Cinterop 与 libxml2 - 损坏的 XPath 表达式

版本 科特林 1.9.22 libxml 2.9.14+dfsg-1.3 操作系统:Ubuntu 23.10 问题 在一个小型 Kotlin/Native 应用程序中,我使用 cinterop 和 libxml2 来评估一组 XPath 表达式以提取元素

回答 1 投票 0

Homebrew 安装 libxml2 和 python 模块

早上好, 我正在尝试使用 python 模块安装 libxml2 。我已经尝试过以下方法: 酿造安装--with-python libxml2 ...

回答 5 投票 0

请求完整的、可编译的libxml2 sax示例

我花了很长时间才弄清楚如何使用 libxml2 的 sax 解析器。有人可以发布一个解析此 XML 的示例(是的,没有 页眉和页脚标签,如果 c...

回答 3 投票 0

由于持续打开和关闭 XML 文件而导致内存泄漏

我在线程内调用此代码片段。但是我遇到了内存泄漏。是否是由于连续打开和关闭文件所致?如果是,我该如何解决这个问题? 如果(g_readFromDataFile == TRUE)...

回答 1 投票 0

include 中没有二级文件夹 libxml2/libxml 如何编译 libxml2

我正在使用以下设置编译 libxml2: 函数 libxml() { wget -O - https://download.gnome.org/sources/libxml2/2.11/libxml2-2.11.5.tar.xz | tar --strip-components 1 -xJ ./配置CP...

回答 1 投票 0

未找到包“libxml-2.0”

我正在尝试从 https://wiki.documentfoundation.org/DLP/Libraries/libvisio 在我的 mac os x 中添加 libvisio 我已经添加了下面列出的所有描述的依赖项: 促进 性能 重症监护病房 利伯复仇 李...

回答 7 投票 0

如何在 XPath 中为空节点的 text() 返回 '' ?

foo 我想返回 ['', 'foo'] 但 libxml 的 xpath //td/text() 仅返回 ['foo']。如何找到空标签为“”而不是(不匹配)?

回答 3 投票 0

Windows 上有比 XML::LibXML for Perl 更好的 XML 解析器吗?

我尝试过很多 Perl XML 解析器。我对 Sablotron Parser 非常感兴趣,但是安装在 Windows 机器上实在是太痛苦了。目前我已经开始使用 XML::LibXML 和 XML::L...

回答 8 投票 0

使用libxml2无法解析太深的节点

我生成了一个由255个div标签包裹的img标签的html。我使用libxml解析html并输出结果,但结果中缺少img标签。但如果 div 标签的数量是 254,...

回答 1 投票 0

如何使用 libxml2 访问 xml 文件中的特定元素?

我需要一个指向该文件的“tiles”元素的 xmlNode。 我需要一个指向该文件的“tiles”元素的 xmlNode。 <map> <export from="v4.3.9" build="4390" date="2023-07-17" time="14:55:14" /> <region floors="1" lowest_floor="1" grid_shape="square"> <name> <![CDATA[Region 1]]> </name> <setup origin="bl" /> <floor index="1"> <tiles> ... 我想我可以通过将 xmlNode 设置为其子节点来简单地在树中导航。 xmlDoc *doc; xmlNode *cur; doc = xmlParseFile("test.xml"); cur = xmlDocGetRootElement(doc); cur = cur->children; // cur->name at this point returns 'text' which is weird but besides the point cur = cur->next; ... 此时,cur 是“导出”,这正是我所期望的。但如果我再这样做一次,cur 就会变成 NULL 并且出现段错误。我可以再次执行 cur = cur->next 来到达“region”,但我也无法从那里到达任何地方。我认为每个节点都会连接到下一个节点,但情况似乎并非如此,它在第一组子节点之后停止。 // cur->name 此时返回“文本”,这很奇怪,但除此之外 这是因为节点之间的空白很重要,即使我们通常不这么认为。 那个 text 节点是换行符以及 <map> 和 <export> 之间的两个空格。 我认为每个节点都会连接到下一个节点,但情况似乎并非如此,它在第一组子节点之后停止。 这是因为 DOM 是分层的,而不是线性的。当您处于 <region> 时,您可以进入其 node->children,并继续检查 node->next,直到到达 <floor>,依此类推... 或者,您可以使用 XPath,只需对 map/region/floor/tiles 执行 XPath 查询,它就会为您提供图块节点。 libxml2 示例列表中有一个使用 XPath 的示例 http://xmlsoft.org/examples/#xpath1.c

回答 1 投票 0

复制dom然后替换节点(xmlCopyDoc和xmlReplaceNode)时内存泄漏

我正在构建一个程序,使用 libxml2 v2.11 在两个 xml 文件之间进行合并验证。 总之,我正在创建目标 dom 的副本,然后用替换 dom 的节点替换所有节点...

回答 1 投票 0

为什么 Nokogiri 的 to_xhtml 从 `name` 创建新的 `id` 属性?

考虑以下代码: 需要'nokogiri'#v1.5.2 doc = Nokogiri.XML('ick') 把 doc.to_html #=>我...

回答 2 投票 0

当根标签包含属性时,Perl libxml findvalue 失败

我正在尝试过滤给定 XML 文件中与 CSV 文件中包含的合同 ID 匹配的记录。 xml 文件如下所示: 我正在尝试过滤与 CSV 文件中包含的合同 ID 匹配的给定 XML 文件中的记录。 xml 文件如下所示: <ROOTS02 xmlns="http://www.fja.com/RAN/RANTS02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.fja.com/RAN/RANTS02 RANTS02.xsd"> <Record> <Date>27.02.2023</Date> <Year>2022</Year> <ContractID>115000520</ContractID> <Data> ... some more fields ... </Data> </Record> <Record> </Record> .... </ROOTS02> 我的 perl 代码如下所示: #!/usr/bin/perl -w use strict; use XML::LibXML; my $xml_parser = XML::LibXML->new(); my $xml_file="data0.xml"; my $vidfile="contractids.txt"; my $output="out0.xml"; my $roottag='ROOTS02'; my $rectag='Record'; my $filtertag='ContractID'; my $element; my %vidtable; readcontractids($vidfile); print "Parsing input file $xml_file...."; my $xml_doc = $xml_parser->parse_file($xml_file); #parsefile($input); my $root = $xml_doc->documentElement(); my @records = $root->getElementsByTagName($rectag); open(OUT, '>:encoding(UTF-8)', $output); foreach my $record (@records) { my $contract_id = $record->findvalue($filtertag); if ( exists $vidtable{$contract_id} ) { $record->unbindNode(); print OUT $record->toString(); } } close OUT; print "Done!\n"; print "Output written to $output\n"; ########################################### sub readvertragids { my $file=shift; my $pidold; my $pidnew; open(FH, '<', $file) or die "Error: $file can't be read :$!"; while (<FH>) { chomp $_; if ( ! exists $vidtable{$_} ) { $vidtable{$_}=$_; } } close(FH); } 如果从 XML 文件第一行的 ROOTS02 标签中删除属性,一切正常: 使用包含属性的 XML 文件的原始第一行,对标记“ContarctID”的 findvalue 调用没有结果: perl -d ./t5.pl Loading DB routines from perl5db.pl version 1.37 Editor support available. Enter h or 'h h' for help, or 'man perldebug' for more help. main::(./t5.pl:4): my $xml_parser = XML::LibXML->new(); DB<1> b 56 DB<2> r main::(./t5.pl:56): if ( exists $vidtable{$contract_id} ) { DB<2> Parsing input file rant0.xml....l 50-60 50 #parsefile($input); 51: my $root = $xml_doc->documentElement(); 52: my @records = $root->getElementsByTagName($rectag); 53: open(OUT, '>:encoding(UTF-8)', $output); 54: foreach my $record (@records) { 55: my $contract_id = $record->findvalue($filtertag); 56==>b if ( exists $vidtable{$contract_id} ) { 57: $record->unbindNode(); 58: print OUT $record->toString(); 59 } 60 } DB<3> p $rectag Record DB<4> p $filtertag ContractID DB<5> p $contract_id DB<6> p $record <Record> <Date>27.02.2023</Date> <Year>2022</Year> <ContractID>115000520</ContractID> ... 我该怎么做才能让它与根标签中的属性一起工作? 这些属性如何影响 libxml 函数的功能?

回答 0 投票 0

是否可以使用 XXE 和 libxml2 泄露数据?

我正在研究XXE和数据泄露,我想通过实际测试来了解它是如何工作的,但由于某些原因,我无法实现。 我正在使用一个小的 C 程序来读取 XML...

回答 0 投票 0

libxml2.so Init/CleanupParser 用于多线程进程

我在 arm/linux 环境中使用 libxml2 作为来自不同并行运行进程的共享库。官方示例是一次性处理 InitParser() 和

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.