问题标签 [xpath-3.1]

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 回答
71 浏览

xml-namespaces - 为 Saxon XPathCompiler 定义所有命名空间的最佳方法是什么?

当我们加载一个 XML 文件时,如果它使用命名空间,我们必须将所有这些命名空间传递给编译器。

首先,是否有一些调用告诉编译器读取 XML 文件本身并使用文件中声明的前缀/URI?我总是觉得很奇怪,我必须告诉编译器一些它可以自己解决的问题。

但是,如果确实需要这样做,那么以下是最好的方法吗?

完整的代码在SaxonQuestions.zip(减去许可证密钥)- XmlDatasource.java 中。

0 投票
2 回答
84 浏览

json - JSON to XML 有什么损失吗?

我们有一个接受 XML、JSON、SQL、OData 等数据的程序。对于 XML,我们使用 Saxon 及其 XPath 支持,效果非常好。

对于 JSON,我们使用不如 XPath 3.1 强大的jsonPath 库。并且 jsonPath 在某些极端情况下有点松鼠。

那么......如果我们将我们得到的 JSON 转换为 XML 然后使用 Saxon 会怎样?这种方法有限制吗?是否存在不会转换为 XML 的 JSON 结构,例如匿名数组?

0 投票
1 回答
26 浏览

saxon - 原子值数组可以是 XPath 查询中的节点名称吗?

对于查询“PROJECT[1]/PROPOSAL[1]/SOLUTION[1]/UNIT[1]/distinct-values(LANDING_DOOR_FRAME_FINISH_FRONT/LANDING_DOOR_FRAME_FINISH_FRONT_VALUE)”,如果 distinct-values() 返回一个值,但抛出否则例外。(顺便说一句,这个查询不是我的主意)。

在查询中将原子值作为节点名称是一个坏主意吗?或者没关系?如果可以,是否只有当它返回一个值时才可以?

为此从 Java 调用 Saxon。

0 投票
1 回答
19 浏览

xml - XPath 如何处理扩展名称冲突的属性?

鉴于以下文件...

...(Q1)这个 xpath 3.1 表达式的规范结果是什么..

...如果上下文节点是文档,并且命名空间绑定xmlns:n2="https://www.example.com"附加到 xpath 处理器?

(Q2) 表情呢……

xmlns="https://www.example.com"...在 xpath 处理器上具有命名空间绑定?

我试过的

我在各种不同的 xpath 实现中得到了不一致的结果,这表明这是 XPath 规范中的一个灰色区域。我什至经历了两个节点序列的返回,乍一看,这是一个意想不到的结果。

参考:

  1. https://www.w3.org/TR/2006/REC-xml-names11-20060816
  2. https://www.w3.org/TR/2017/REC-xpath-31-20170321/
0 投票
4 回答
85 浏览

xpath - XPath 排序不是持久的?

我有以下 XML:

我需要对 ActivityNarrativeInformation 元素进行分组ActivityIDActivityNarrativeText以这样的方式连接,它按以下方式排序ActivityNarrativeSequenceNumber

我设法使用以下 XPath 查询(XPath 3.1)对元素进行排序 sort(//ActivityNarrativeInformation[ActivityID=123456789], (), function($ActivityNarrativeSequenceNumber) {$ActivityNarrativeSequenceNumber})

所以结果看起来像这样:

然而,问题是,如果我想ActivityNarrativeText通过在最后添加/ActivityNarrativeText这样的

sort(//ActivityNarrativeInformation[ActivityID=123456789], (), function($ActivityNarrativeSequenceNumber) {$ActivityNarrativeSequenceNumber})/ActivityNarrativeText

或者

sort(//ActivityNarrativeInformation[ActivityID=123456789]/ActivityNarrativeText, (), function($seq) {$seq/ActivityNarrativeSequenceNumber})

订单丢失:

我究竟做错了什么?

0 投票
1 回答
62 浏览

saxon - 使用 xpath 3.1 fn:transform 创建 xsl:result-document 使用 saxon 9.9 EE

我想使用 xpath 3.1 fn:transform 创建一个输出文档。以下是 A.xsl。它在直接运行时(从氧气中)创建 A.xml:

结果:使用所需输出创建 A.xml:

现在,使用转换函数调用 A.xsl:

结果:A.xml 已创建但不完整。任何帮助表示赞赏。

0 投票
3 回答
116 浏览

xpath - 使用 XPath 将 URL 查询字符串解析为参数映射

{ 'param': 'value' }在 XSLT/XPath 3.0 中将URL 查询字符串解析为映射的最易读的方法是什么?

注意:这是使用 XPath 从参数映射构建 URL 查询字符串中描述的函数的反函数。

更新:我没有提到该函数应该支持多值参数,例如a=1&a=2,并理想地将它们解析为一个xs:string*序列。

0 投票
1 回答
35 浏览

xpath - XPath 检索没有命名空间和前缀的 XML 标记值

我有以下 XML -

并尝试根据 TextId = ZC01 检索 TextLine 节点列表 - <TextLine>ecom header text1</TextLine>

当我将 xpath 应用为 --> //m:properties[d:TextId = 'ZC01']/d:TextLine

我得到的输出为 - <d:TextLine xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">ecom header text 1</d:TextLine>

如何删除前缀和命名空间?我尝试使用 local-name(),但是没有用 可能是用错了方法。谢谢您的帮助!

谢谢菅田

0 投票
1 回答
27 浏览

xslt-3.0 - 多个字符串替换

(将问题从“静态替换”更新为“动态替换”)

我想text用所有规则中每次出现的键替换元素中的文本。value替换文本是对该元素中属性的评估。

我应该采用哪种方法(使用最新的 Saxon HE)?

文本的结果应该是“你好唐老鸭”。</p>


添加:

我认为部分问题可以用 解决<xsl:evaluate>,但这显然还不行(没有字符串替换):

结果是<data value="Hello"/>。我看到的是 xpath 表达式的动态评估,从那里应该可以进行字符串替换。

现在我的步骤是将我的方法添加到 Martin 的答案中,但这将在 XPath 中混合 XSLT,这不会按照我想要的方式工作。