按元素顺序排列的 xpath 层次结构
xpath hierarchy by element sequence
我有以下问题:
<root>
<b>Value 1</b>
<p>item 1</p>
<p>item 2</p>
<p>item 3</p>
<b>Value 2</b>
<p>item 1</p>
<p>item 2</p>
<b>value 3</b>
<p>item 1</p>
<p>item 2</p>
<p>item 3</p>
<p>item 4</p>
</root>
我想要一个 XPath 表达式,允许我按以下方式提取值:
Value 1 - item 1
Value 1 - item 2
Value 1 - item 3
Value 2 - item 1
Value 2 - item 2
Value 3 - item 1
Value 3 - item 2
Value 3 - item 3
Value 3 - item 4
可能吗?
如果您使用的是 xslt,那么这应该提供一些基本的见解 select
元素,然后单独找到第一个前面的元素
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:template match="/">
<xsl:apply-templates select="//p"/>
</xsl:template>
<xsl:template match="p">
<xsl:value-of select="preceding::b[1]"/> <xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>
我有以下问题:
<root>
<b>Value 1</b>
<p>item 1</p>
<p>item 2</p>
<p>item 3</p>
<b>Value 2</b>
<p>item 1</p>
<p>item 2</p>
<b>value 3</b>
<p>item 1</p>
<p>item 2</p>
<p>item 3</p>
<p>item 4</p>
</root>
我想要一个 XPath 表达式,允许我按以下方式提取值:
Value 1 - item 1
Value 1 - item 2
Value 1 - item 3
Value 2 - item 1
Value 2 - item 2
Value 3 - item 1
Value 3 - item 2
Value 3 - item 3
Value 3 - item 4
可能吗?
如果您使用的是 xslt,那么这应该提供一些基本的见解 select
元素,然后单独找到第一个前面的元素
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:template match="/">
<xsl:apply-templates select="//p"/>
</xsl:template>
<xsl:template match="p">
<xsl:value-of select="preceding::b[1]"/> <xsl:value-of select="."/>
</xsl:template>
</xsl:stylesheet>