问题标签 [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 投票
2 回答
1509 浏览

xml - Perl XML::LibXML 文本内容

有什么方法可以从 xml 代码中保留节点的标签?问题的解释可能是这样的:我有一个 xml 输入,我查询输入,我想获得查询项目的 xml 输出。

当我//pets/dog在我的 Perl 程序中访问时,输出如下:

有没有办法给函数textContent一些参数来保留标签?这是我的循环代码块,将节点放入哈希中,然后输出:

保留孩子的标签?要有这样的输出:

谢谢你的回答。

0 投票
1 回答
556 浏览

xml - 使用 Perl/LibXML 获取子元素匹配条件的 XML 父元素

我正在使用 XML::LibXML(仅限于 v1.58)。感谢博罗丁这篇文章中我正确地获得了PROPERTY NAME="Name"if的值CLASSNAME="SharedGtTranslator"。我还想要获取VALUE.OBJECT包含上述内容的整个父元素,并将其输出到另一个 XML 文件。

因此,如果 XML 文件如下所示:

新文件将仅包含以下内容:

0 投票
1 回答
443 浏览

perl - 使用 XML::LibXML 在 Perl 中提取 XML 标记内容

我有以下 XML 文件:

我可以使用下面给出的代码提取内容“欧洲人”。有什么方法可以使用 XML::LibXML 从标签中提取“nn”?

0 投票
3 回答
1993 浏览

perl - 使用 XML::LibXML 查找和替换 CableLabs 1.0 XML 文件的特定部分

我已经尝试过XML Simple,但是由于它只是将 XML 读入哈希,因此在针对 DTD 运行时输出是无用的。艰难地学会了它。

所以我采用了XML::LibXML,有趣的是我发现最难完成的要求是XML::Simple最简单的。然而,我发现一些更容易做的事情XML::Simple被证明是不可能的(由于我对 DOM 缺乏了解,以及一些令人困惑的行为XML::LibXML)。

所以这里是一个 XML 示例:

注意:我已对此进行了简化,以便在本文中使用。

所以基本上我必须使用标签中的Name字段<ADI>来确认我在 DOM 的正确区域中以更改标签中的Value属性<App_Data>who's Nameis ChangeMe

这是我想出的代码片段......并且惨遭失败。

我没有除此之外的任何东西,因为它不起作用。我得到一个错误的东西

作为对这个问题的补充,如果我想完全删除<Metadata>包含照片和/或海报的那些(和所有孩子)怎么办?

0 投票
1 回答
2834 浏览

perl - Parsing SOAP response in perl with LibXML

I need to parse a SOAP response in perl:

My code:

I am unable to get the correct XPATH expression to get ns2:errorCode and ns2:message. I've read lots of answers and will continue playing with this but time is getting short.

I'm using perl 5.16 under windows but plan to deploy on perl 5.8.4 under solaris. I'm also using XML::LibXML.

0 投票
1 回答
1217 浏览

xml - Find and replace text using XML::LibXML

I want to find text enclosed by tilde (~) and prepend the text with some string, e.g. replace ~it~ with ~T1it~ in an XML file, then save the result to another file. I know how to get the text using XPath and how to replace it, but I don't know how to put the replaced text in their places and output it.

Here's my input XML:

Here's my Perl script:

Here's my desired output:

0 投票
4 回答
734 浏览

xml - XML::Twig 或其他中的 XPath 变量

我正在使用XML::Twig::XPath处理 ITS 数据,并试图弄清楚如何使用其中的变量解析 XPath 表达式。这是我需要从 ITS规范中使用的示例:

我需要能够评估 中包含的 XPath 表达式selector,变量的值是its:param元素的内容。我不知道如何做到这一点。XML::XPath的文档提到了变量(我假设它应该是上下文的一部分),它甚至有一个类来表示它们,但是文档没有说明如何在上下文中指定变量。如果可能的话,我会更加不确定如何从 XML::Twig 访问此类功能。

有谁知道如何做到这一点?或者,您能否举例说明如何将此类功能与另一个模块(例如 XML::LibXML)一起使用(其中广泛提及变量,但让我有点不确定如何使用字符串变量执行此操作)?

0 投票
1 回答
293 浏览

xml - 使用 XML::LibXML 获取范围内的所有命名空间

我需要获取XML::LibXML::Node范围内的所有命名空间。该模块有一个getNamespaces()方法,但文档明确说明它

不会返回范围内的所有命名空间,而只会返回为该节点显式声明的命名空间。

那么如何获取特定节点范围内的所有命名空间呢?

0 投票
1 回答
260 浏览

xml - 在 perl 中使用 XML::LibXML 在 XML 中使用元字符进行字符串搜索

我正在读取一个 XML 文件,并希望将“print”中的 XPath 替换为“@href="*?releaseStatus=RELEASED”,这样我将使其通用以获取实例的第一次出现。我该如何实现?

XML 文件:

0 投票
2 回答
342 浏览

xml - 在上下文节点范围内取消注册命名空间

我正在使用 XML::LibXML。在创建 XPath 上下文时,我需要能够准确指定哪些名称空间可用。但是,上下文节点范围内的所有名称空间都会自动注册到 XPathContext 对象中。我需要注销它们,但是当我尝试注销上下文节点范围内的命名空间时出现错误:

上面的呱呱叫XPathContext: cannot unregister namespace。检查源代码,我看到错误是从LibXML.xs的第 7618 行打印的。它在函数xmlXPathRegisterNs返回 -1 时打印。我能在xmlsoft.org上找到这个函数的唯一文档。该文档指定 -1 返回值表示存在错误,但未指定在什么情况下会发生错误。我终其一生都找不到这种方法的来源。

XPath 规范很可能不允许这种特定操作,但我也无法确定这一点。

谁能告诉我 a) 是否有办法使用 XML::LibXML::XPathContext 取消注册上下文节点范围内的命名空间,或者 b) 有文档表明在 XPath 中不允许这样做?

编辑

Joel 向我展示了如果您没有手动注册命名空间,取消注册命名空间只会引发给定的错误。但是,注销仍然无法正常工作: