问题标签 [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.
perl - Perl、LibXML 和模式
我有一个示例 Perl 脚本,我试图根据模式加载和验证文件,它们询问各种节点。
不幸的是,虽然它可以很好地验证 XML 文件,但它没有找到任何 $book 项目,因此没有打印出任何东西。
如果我从 XML 文件中删除架构并从 PL 文件中删除验证,那么它工作正常。
我正在使用默认命名空间。如果我将其更改为不使用默认命名空间 (xmlns:lib="http://libs.domain.com" 并在 XML 文件中的所有项目前加上 lib 并更改 XPath 表达式以包含命名空间前缀 (/lib: library/lib:book) 然后它再次工作文件。
为什么?我错过了什么?
XML:
XSD:
xml - 如何使用 XML::LibXML 通过 SAX 解析 XML?
到目前为止,我发现的唯一示例代码太旧了,它不再起作用(使用不推荐使用的类)。我只需要一些基本的东西来证明:
从文件加载和解析 XML
定义 SAX 事件处理程序
读取传递给事件处理程序的元素的属性或文本值
windows - 无法在 Windows 上安装 XML::LibXML 模块
我正在尝试使用XPath
来提取一些 HTML 标签和数据,为此我需要使用XML::LibXML
模块。
我尝试从 CPAN shell 安装它,但它没有安装。
我按照 CPAN 站点的说明进行了安装,我们需要在安装libxml2
之前安装iconv
和zlib
包装器XML::LibXML
,但没有成功。
另外,如果有任何其他更简单的模块可以完成我的任务,请告诉我。
手头的任务:
我正在一个<dd>
非常大的 html 页面上搜索一个特定的标签(大约 5000 - 10000)<dd>
和<dt>
标签。所以,我正在编写一个脚本,它匹配<dd>
标签内的内容并获取相应(下一个)<dt>
标签内的内容。
我希望我能更清楚一点。任何帮助是极大的赞赏。
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 行中止
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,并试图让他们的示例骆驼脚本与我的命名空间一起工作,因此奇怪的命名空间。
perl - 为什么我不能使用 XML::LibXML 中的 XPath 访问 XML 文件中的元素?
我有一个 XML 文件,其中一部分如下所示:
我正在尝试使用 Perl 的 libXML 解析文件并使用以下命令输出 wellName 和 rawData:
它现在没有打印出任何东西,我认为我的 Xpath 语句有问题。请你能帮我修复它,或者你能告诉我如何解决xpath语句吗?谢谢。
html - XML::LibXML::Reader 是否读取 HTML?
我在XML::LibXML::Reader文档中没有找到任何关于解析 HTML 的内容。我试图解析一个 HTML 站点,但它没有用。我的结论是 XML::LibXML::Reader 不适用于 HTML 吗?
perl - 为什么 Perl 的 XML::LibXML 模块(特别是 XPathContext)不计算位置?
我有一个具有以下形式的文档的 XML 表示:
我正在尝试使用 XML::LibXML 来解析文档并获取句子的位置。
我得到的错误是“XPath 错误:无效的上下文位置错误”。我已经阅读了文档并发现了这个有趣的花絮
在初始上下文中评估 XPath 函数 position() 会引发 XPath 错误
我的问题是我不知道如何处理这些信息。什么是“初始背景”?如何让引擎自动跟踪上下文位置?
回复:@丹
欣赏答案。我试过你的例子,它奏效了。在我的代码中,我假设 context 是我的 perl 变量表示的节点。所以,$sentence->find('position()') 我想成为'./position()'。尽管看到了一个可行的例子,但我仍然做不到
但是,我可以
position() 只能用于限制像您这样的查询吗?
xml - XML::LibXML 行尾(空格)问题
嗨,我正在使用 Perl 中的 LibXML 解析 XML 文件。我遇到的问题是结束字符(空格)被视为文本节点。例如,给定如下输入
解析器认为节点“books”的子节点数为 3,它们是:
<books>
文本节点(包含和之间的字符<book>
)- 的元素节点
<book>
</book>
文本节点(包含和之间的字符</books>
)
问题是如何告诉 LibXML 忽略空格?我尝试使用 no_blanks (即 $parser = XML::LibXML->new(no_blanks => 1) 构建解析器时),但似乎没有效果。
提前致谢
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 对象?
输出
删除