问题标签 [xpath-1.0]

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 投票
7 回答
36205 浏览

xml - 如何使用 Xpath 1.0 从 XML 文档中查找最大属性

有没有办法使用 Xpath 1.0 查询 XML 文档以返回给定属性的最大值?

例如有没有办法获得最大 id ?

0 投票
3 回答
4461 浏览

xslt - 使用 XPath 选择具有特定属性值的连续元素

我有这样的 XML:

我想要的是使用 XSLT 样式表将其class属性包含的所有元素的内容x放入一个<x>元素中。所以输出应该是这样的:

(或者,理想情况下,

但是当我解决了这个问题时,这是一个需要解决的问题。)

这是我的 XSLT 的相关片段:

这产生的是:

我很确定我必须在 XPath 表达式中使用计数,这样它就不会选择以下所有具有类 x 的元素,而只会选择连续的元素。但是我如何计算连续的?还是我这样做是错误的?

0 投票
3 回答
15004 浏览

xslt-1.0 - XPath 中 sum 和 product 的聚合函数

与这个问题(http://stackoverflow.com/q/1333558/948404)类似,我想使用 XPath 计算结构中的产品总和,如下所示:

是否有一个 XPath 表达式计算每个项目的乘积之valuequantity

更新:该解决方案必须与 PHP 的 XSLTProcessor 类一起使用,这意味着它可能必须符合 XSLT 1.0。这就是为什么我还没有接受使用 XSLT 2.0 的两个可能正确的答案。我无法在我的 PHP 实现、浏览器或 w3schools 的 Tryit Editor [1] 中测试它们。对不起!

  1. http://w3schools.com/xsl/tryxslt.asp?xmlfile=cdcatalog&xsltfile=cdcatalog
0 投票
2 回答
2396 浏览

xslt-1.0 - 使用 xsl:for-each 访问谓词中的当前节点

我一直在寻找如何访问当前节点,同时使用xsL:for-each. 这是我的 XML:

我试图实现的是这样的 HTML 表示:

我正在使用 XPath 表达式来获取所有不同的年份,然后遍历它们,调用year带有参数$year$events. 获得价值$year很容易,但我正在努力寻找正确的事件。以下将不起作用,可能是因为.在第二个谓词中指的是event正在测试的谓词。但是如何访问year那里?

提前谢谢了!

PS:必须使用 XPath 和 XSLT 1.0。

0 投票
1 回答
3769 浏览

xslt - XPath 1.0:查找指定节点之前的节点数

我熟悉在 XSLT 中使用前面的轴来确定给定当前上下文的前面元素的数量。但是,考虑到我存储在变量中的节点,我看不到这样做的方法。例如:

给定以下 XML,precedingBookCount应该等于 3。

我在 XPath 2.0 中看到有一个可以使用的NodeComp 运算符 <<,但在 XPath 1.0 中似乎没有。

那么我该如何在 XPath 1.0 中执行此操作呢?

0 投票
2 回答
280 浏览

xslt-1.0 - 使用 XPath 选择包含撇号的字符串

为了通过 XSLT 生成 CSS,我使用了以下表达式:

这会产生字符串Times New Roman,而不是'Times New Roman'我需要在 CSS 中使用的字符串。尝试将字体名称包含在其中&apos;&#x27;不起作用:

有人可以帮我找到一个合适的表达方式吗?提前谢谢了!

0 投票
2 回答
2897 浏览

xslt-1.0 - 选择包含混合内容或仅使用 XPath 的文本的节点

使用 XPath 1.0 和 XSLT 1.0 我需要选择混合内容的直接父级或仅文本。考虑以下示例:

显然 classes matchmaybe-matchanddont-match仅用于演示目的,不可用于匹配。maybe-match意味着最好不匹配,但我可以自己解决问题,以防难以排除这些。

提前谢谢了!

0 投票
1 回答
2110 浏览

debugging - 用于模拟具有多个条件的子查询的 xpath 表达式

我必须使用 xpath 1.0 在两个不同节点上使用两个标准在 xml 中找到一个值

我试着用一个例子来解释:如果我们有以下xml

我们想在最小的范围内检索 with <value>(在<obj/data>我们的例子中,我们将有 DDD 作为结果)。<code=X><obj><index>

我尝试了以下表达式,但它似乎不起作用:

但它不起作用

0 投票
2 回答
6861 浏览

xslt - XPath 1.0 选择兄弟姐妹的不同属性

我四处寻找,但无法获得任何我发现可行的想法。

这些是我在 xml 文件中的几个节点(从 db 生成)

我希望能够从每一个中选择不同的 ATTR3。

目前,这适用于第一个 //PANELS/PANEL[not(@ATTR3 = (preceding::*/@ATTR3))] 并返回 '31' 的预期结果

但是当我尝试对第二个做同样的事情时,它什么也没有返回(我希望它再次返回'31') //ZONES/ZONE[not(@ATTR3 = (preceding::*/@ATTR3))]

我知道第二个不起作用,因为 ATTR3 的值对于所有这些都相同,但是如何获得每个节点的不同属性值?

(这被用作我用来显示每个不同值的 for-each 的谓词)

这是这样使用的,其中一个for-each用于ZONES,一个用于PANELS

我希望它返回

我尝试过使用preceding-sibling而不是preceding,但后来我得到了

每个都在这样的模板中:

0 投票
1 回答
118 浏览

xml - 我怎样才能有条件地转换一个 XML 节点,而不在这个条件之外省略它的实例?


我正在转换所有  <p>  标签并将这些节点重命名为  <Body_Text>,条件是它们位于元素内  <body>  (使用  xsl:if)。

我的代码正在这样做,但是它忽略了  <p>  元素之外的所有元素  <body>  ,我希望它这样做。


这是要转换的 XML:


...这是 XSL:


...这是不希望的结果(省略  <p>  元素之外的所有元素  <body>  ,我希望它这样做):


这是在http://xslt.online-toolz.com/tools/xslt-transformation.php测试的。


这是我没有得到的预期结果: