如何在 XPath 中使用一个表达式从同一节点选择两个属性?

发布于 2024-11-07 13:24:48 字数 101 浏览 0 评论 0原文

例如:

//person[@id='abc123']/@haircolor|/@weight"

PS。有很多“人”记录

For example:

//person[@id='abc123']/@haircolor|/@weight"

PS. there are lots of "person" records

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

梦里人 2024-11-14 13:24:48

试试这个:

//person[@id='abc123']/@*[name()='weight' or name()='haircolor']

如果您使用的是 XPath 2.0 处理器,您还可以使用更漂亮的选项:

//person[@id='abc123']/(@haircolor|@weight)`

Try this:

//person[@id='abc123']/@*[name()='weight' or name()='haircolor']

If you're using an XPath 2.0 processor, you may also use a prettier option:

//person[@id='abc123']/(@haircolor|@weight)`
榕城若虚 2024-11-14 13:24:48

您是否想要根据多个属性的值搜索人员节点。如果这是问题,那么您可以使用 ands 例如,

//person[@id='abc123' and @haircolor='blue' and @weight='...']

如果您想搜索单个属性,但返回其他属性的值,我会这样做:

 <xsl:template match="person[@id='abc123']">
     <xsl:value-of select="@haircolor"/>
     <xsl:value-of select="@weight"/>
  </xsl:template>

Are you wanting to search for person nodes based on the value of multiple attributes. If that's the question then you can just use ands e.g.

//person[@id='abc123' and @haircolor='blue' and @weight='...']

If you want to search on a single attribute, but return the values of the other attributes, I would do something like this:

 <xsl:template match="person[@id='abc123']">
     <xsl:value-of select="@haircolor"/>
     <xsl:value-of select="@weight"/>
  </xsl:template>
娇纵 2024-11-14 13:24:48

如果您尝试获取指定属性的值,我建议为请求的人引入一个变量。

<xsl:variable name="person" select="//person[@id = 'abc123']" />

之后,您可以使用指定的变量从请求的人那里获取任何属性。

<xsl:value-of select="$person/@haircolor" />
<xsl:value-of select="$person/@weight" />

If you are trying to get the values of the specified attributes I would suggest introducing a variable for the requested person.

<xsl:variable name="person" select="//person[@id = 'abc123']" />

After that you can get any attribute from the requested person by using the specified variable.

<xsl:value-of select="$person/@haircolor" />
<xsl:value-of select="$person/@weight" />
溺ぐ爱和你が 2024-11-14 13:24:48

示例 XML:

<X>
<Y ATTRIB1=attrib1_value ATTRIB2=attrib2_value/>
</X>

string xPath="/" + X + "/" + Y +
"[@" + ATTRIB1 + "='" + attrib1_value + "']" +
"[@" + ATTRIB2 + "='" + attrib2_value + "']"

XPath 测试台:
http://www.whitebeam.org/library/guide/TechNotes/xpathtestbed.rhtm

Sample XML:

<X>
<Y ATTRIB1=attrib1_value ATTRIB2=attrib2_value/>
</X>

string xPath="/" + X + "/" + Y +
"[@" + ATTRIB1 + "='" + attrib1_value + "']" +
"[@" + ATTRIB2 + "='" + attrib2_value + "']"

XPath Testbed:
http://www.whitebeam.org/library/guide/TechNotes/xpathtestbed.rhtm

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文