问题标签 [xml-libxml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3792 浏览

perl - Perl、LibXML 和模式

我有一个示例 Perl 脚本,我试图根据模式加载和验证文件,它们询问各种节点。

不幸的是,虽然它可以很好地验证 XML 文件,但它没有找到任何 $book 项目,因此没有打印出任何东西。

如果我从 XML 文件中删除架构并从 PL 文件中删除验证,那么它工作正常。

我正在使用默认命名空间。如果我将其更改为不使用默认命名空间 (xmlns:lib="http://libs.domain.com" 并在 XML 文件中的所有项目前加上 lib 并更改 XPath 表达式以包含命名空间前缀 (/lib: library/lib:book) 然后它再次工作文件。

为什么?我错过了什么?

XML:

XSD:

0 投票
3 回答
2974 浏览

xml - 如何使用 XML::LibXML 通过 SAX 解析 XML?

到目前为止,我发现的唯一示例代码太旧了,它不再起作用(使用不推荐使用的类)。我只需要一些基本的东西来证明:

  1. 从文件加载和解析 XML

  2. 定义 SAX 事件处理程序

  3. 读取传递给事件处理程序的元素的属性或文本值

0 投票
4 回答
3869 浏览

windows - 无法在 Windows 上安装 XML::LibXML 模块

我正在尝试使用XPath来提取一些 HTML 标签和数据,为此我需要使用XML::LibXML模块。

我尝试从 CPAN shell 安装它,但它没有安装。

我按照 CPAN 站点的说明进行了安装,我们需要在安装libxml2之前安装iconvzlib包装器XML::LibXML,但没有成功。

另外,如果有任何其他更简单的模块可以完成我的任务,请告诉我。

手头的任务:

我正在一个<dd>非常大的 html 页面上搜索一个特定的标签(大约 5000 - 10000)<dd><dt>标签。所以,我正在编写一个脚本,它匹配<dd>标签内的内容并获取相应(下一个)<dt>标签内的内容。

我希望我能更清楚一点。任何帮助是极大的赞赏。

0 投票
5 回答
25522 浏览

perl - 如何为 ActivePerl 安装 XML::LibXML?

我是 Perl 新手,我正在使用ActivePerl。我收到以下错误:

在@INC 中找不到 XML/LibXML.pm...

我已经尝试了所有方法,但找不到为 XML::LibXML 安装“正确”模块的步骤。

这正是正在发生的事情。我正在从命令提示符运行脚本:

c:\temp>perl myscript.pl

myscript.pl 的前几行:

然后我得到这个错误:

c:\temp>perl myscript.pl Can't locate XML/LibXML.pm in @INC (@INC contains: C:/Perl/site/lib C:/Perl/lib .) at myscript.pl line 7. BEGIN failed——编译在 myscript.pl 第 7 行中止

0 投票
1 回答
14460 浏览

perl - 如何在 Perl 中从 XML::LibXML 访问属性和元素?

我在 Perl中无法理解/使用带有XML::LibXML包的名称空间。我可以成功访问元素但不能访问属性。我有以下代码可以访问 XML 文件(http://pastebin.com/f3fb9d1d0)。

然后我尝试访问一个名为 common-name 的元素和一个名为 name 的属性。

但只有拉丁名称 ( @name) 打印出来,通用名称没有。我做错了什么,我怎样才能打印出通用名称?

在这种情况下,@name 有什么作用?我认为它是一个数组,并且应该将属性放入一个数组中,因为可以有多个,但元素(如 common-name)不应该是因为应该只有一个?

我一直在关注这里的例子:http ://www.xml.com/pub/a/2001/11/14/xml-libxml.html 和这里: http: //perl-xml.sourceforge.net/faq /#namespaces_xpath,并试图让他们的示例骆驼脚本与我的命名空间一起工作,因此奇怪的命名空间。

0 投票
2 回答
934 浏览

perl - 为什么我不能使用 XML::LibXML 中的 XPath 访问 XML 文件中的元素?

我有一个 XML 文件,其中一部分如下所示:

我正在尝试使用 Perl 的 libXML 解析文件并使用以下命令输出 wellName 和 rawData:

它现在没有打印出任何东西,我认为我的 Xpath 语句有问题。请你能帮我修复它,或者你能告诉我如何解决xpath语句吗?谢谢。

0 投票
2 回答
498 浏览

html - XML::LibXML::Reader 是否读取 HTML?

我在XML::LibXML::Reader文档中没有找到任何关于解析 HTML 的内容。我试图解析一个 HTML 站点,但它没有用。我的结论是 XML::LibXML::Reader 不适用于 HTML 吗?

0 投票
1 回答
798 浏览

perl - 为什么 Perl 的 XML::LibXML 模块(特别是 XPathContext)不计算位置?

我有一个具有以下形式的文档的 XML 表示:

我正在尝试使用 XML::LibXML 来解析文档并获取句子的位置。

我得到的错误是“XPath 错误:无效的上下文位置错误”。我已经阅读了文档并发现了这个有趣的花絮

在初始上下文中评估 XPath 函数 position() 会引发 XPath 错误

我的问题是我不知道如何处理这些信息。什么是“初始背景”?如何让引擎自动跟踪上下文位置?


回复:@丹

欣赏答案。我试过你的例子,它奏效了。在我的代码中,我假设 context 是我的 perl 变量表示的节点。所以,$sentence->find('position()') 我想成为'./position()'。尽管看到了一个可行的例子,但我仍然做不到

但是,我可以

position() 只能用于限制像您这样的查询吗?

0 投票
2 回答
2757 浏览

xml - XML::LibXML 行尾(空格)问题

嗨,我正在使用 Perl 中的 LibXML 解析 XML 文件。我遇到的问题是结束字符(空格)被视为文本节点。例如,给定如下输入

解析器认为节点“books”的子节点数为 3,它们是:

  • <books>文本节点(包含和之间的字符<book>
  • 的元素节点<book>
  • </book>文本节点(包含和之间的字符</books>

问题是如何告诉 LibXML 忽略空格?我尝试使用 no_blanks (即 $parser = XML::LibXML->new(no_blanks => 1) 构建解析器时),但似乎没有效果。

提前致谢

0 投票
2 回答
377 浏览

perl - XML::LibXML:如何使用 find 获取数字/布尔对象?

来自http://metacpan.org/pod/XML::LibXML::Node

find 使用当前节点作为表达式的上下文来计算 XPath 1.0 表达式,并根据 XPath 表达式的结果类型返回结果。例如,XPath "1 * 3 + 52" 会返回一个 XML::LibXML::Number 对象。其他表达式可能返回 XML::LibXML::Boolean 对象或 XML::LibXML::Literal 对象(字符串)。

我想在我的示例中 find 返回一个 XML::LibXML::Literal 对象(一个字符串)。有人可以向我展示 find 返回 XML::LibXML::Number 对象的示例吗?XML::LibXML::Boolean 对象?

输出

删除