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

xml - 如何使用 XSL 将所有内容包装在具有新节点的指定 XML 元素中?


因此,考虑到这个 XML:


...我怎样才能把它变成这样?


然后,每个实例都  <td>  将包含该  <BLAH> 元素,并且每个实例的内容都  <td>  将在新节点中。



...到目前为止,我有这个 XSL,它  <td>  用新节点包装每个元素,但在外面而不是在里面


...这产生了这种不希望的结果:


http://xslt.online-toolz.com/tools/xslt-transformation.php测试

0 投票
3 回答
269 浏览

xml - 如何从 XML 元素中去除文本、重新排列并与 XSLT 连接?


考虑以下 XML:

...如何转换这些元素的内容以获得此输出?




我正在尝试将 的内容  <first-name>  与 的内容  连接起来<last-name> ,并用一个空格分隔

此外,不需要任何子元素  Authors (如果可能,去掉  <name> 、  <first-name> 和  <last-name>  元素)。



这是我到目前为止的 XSL(不起作用):


到目前为止,我能够将  <contrib>  元素转换为  <Authors> ,但无法连接或剥离其子元素......

0 投票
2 回答
3782 浏览

xml - How can I concatenate all of these XML tags into one larger tag of the same name with XSLT?


I am transforming this XML:

...with this XSL:

...and am getting this output:





However, I am trying to concatenate all of the  Author  tags into one larger  Author  tag, so that the output would resemble this:


Do I need to use a  for-each  loop in some way?

0 投票
2 回答
160 浏览

xml - 如何确定 XML 节点是否有最后一个不具有特定属性的祖先?


  • <p>标签中的任何<body>标签都应转换为Body_Text.

  • <p>具有最后一个祖先<sec> 但没有属性“ ”的标签sec-type应转换为Flush_Text(此处覆盖第一个Body_Text转换)。

  • <p>具有最后一个祖先<sec sec-type="irrelevant-attribute-name>具有属性“ ”)的标签sec-type应转换为Body_Text.




<sec><p>asdf</p></sec>应转化为<sec><Flush_Text>asdf</Flush_Text></sec>.

<sec sec-type="whatevs"><p>asdf</p></sec>应该是<sec sec-type="whatevs"><Body_Text>asdf</Body_Text></sec>


此外,任何进一步嵌套到具有此sec-type属性的祖先都应该是Body_Text

<sec sec-type="whatevs"><sec><p>asdf</p></sec></sec>应该是<sec sec-type="whatevs"><sec><Body_Text>asdf</Body_Text></sec>




这是我的 XML:


...这是我的 XSL,它不能正常工作:


...这是不正确的输出:

请注意,<p>此示例中的第一个实例应转换为Body_Text,但它正在转换为Flush_Text

0 投票
2 回答
1186 浏览

c# - 在 SelectNodes 中使用 XPath 表达式

我见过这个问题,其中 Dimitre Novatchev 展示了一种ends-with使用 XPath 1.0 表达式进行复制的方法。但是,我无法在SelectNodes通话中实现它。

以前我在使用

它返回了我想要的所有节点加上一个我没有的节点,最后有一个额外的“s”(has-more-notifications)。

所以我尝试使用 Dimitre 表达式,它给了我:

这惨败给了我的根节点notification-data-response

这是我第一次涉足 XPath,它看起来就像正则表达式——你要么理解它,要么不理解。

如何实现表达式,使其仅返回以 结尾的节点-notification

更新

输入样本:

0 投票
2 回答
13820 浏览

xslt - 我可以根据变量属性在 XPath 中进行选择吗?

我认为这是不可能的,但希望有一个明确的答案。

XML:

然后在 XSL 中有一个主要书籍信息的简单转换,但我希望根据翻译 xml 翻译标题 - 这样的事情会起作用:

但我想用 XML 中的 agentlang 值替换属性 @French

我正在使用 MSXML / XSLT 1.0

有什么办法可以做到这一点?

0 投票
3 回答
827 浏览

xpath - 多次选择同一个父节点的 xpath 表达式

我有一些类似这样的 HTML:

是否可以基于两者返回<a name="some name"/>元素两次<span/>?对不起我的英语。

0 投票
3 回答
112 浏览

.net - 当属性已声明为父元素的属性时,使用 XPath 匹配名称格式为 ParentElement.Property 的元素

我有一个如下的 XML 文件:

我需要使用 XPath 匹配以下元素 - 除非有办法使用模式禁止它们存在,但我不相信有:

具体来说,我需要匹配元素名称采用以下格式的所有元素:

我在 .Net 中工作,不想为此使用外部库,所以如果可以使用 XPath 1.0 来实现,那将是理想的。如果它效率更高,我愿意使用匹配重复属性而不是元素的系统。

编辑:实际上没有问题。我该怎么做呢?

0 投票
3 回答
9888 浏览

xml - XPath "in" 运算符

XPath 1.0 中是否有一个在 SQL 中充当“in”运算符的运算符?

0 投票
4 回答
1602 浏览

c# - Xpath 搜索节点的后代

我有以下 c# 方法,该方法通过 xpath 对从 refNode 可访问的所有节点执行一些操作

我得到的输入 xml 之一是:

我需要选择一个 refNode <B>(标记***)并将其传递给 foo() 并使用一个 xpath 选择<B>refNode 的所有后代节点,但不嵌套在任何其他<B>节点内

例如,在给定的输入中,结果应包含:

我试过 .//B 给我 3 个结果和 .//B[not(ancesotr::B)] 返回 0 个结果。

我应该使用什么 Xpath 来获得所需的结果?

编辑

我可以更改方法 foo,但不能更改它的签名。此方法是库的一部分,并且被少数用户使用。上面给出的输入只是一个特定的实例,用户也可以将节点 A 作为 refnode 发送并请求所有 C 节点。

Edit2 @Dimitre Novatchev 的解决方案适用于我,如果我可以在不更改其签名的情况下获得 foo 内的 refnode 的 xpath,或者如果有某种方法可以指定this节点,即应用 xpath 的节点。