问题描述
我是XSLT和XPath的初学者,主要通过示例学习和从事项目。
我正在尝试串联两个节点的text()
内容。对于节点a
的每个外观,应将节点text()
的{{1}}内容与下一个兄弟节点a
的{{1}}内容连接起来。此连接的内容应与节点text()
一样在同一位置注册为b
新节点text()
。
示例输入:
foo
预期(希望)输出:
a
我当前正在使用的样式表:
<html>
<body>
<a>First text</a>
<b>Text</b>
<c>Indiferent tag.</c>
<a>Another "a" test.</a>
<b>ěščřžýáíéúů</b>
<c>Another indiferent tag.</c>
</body>
</html>
只是因为错误的XPath语句而出错。
如何改进样式表以获得所需的结果?
注意:我知道存在以下问题及其答案:Here,This brilliant answer和其他问题,但是在将它们应用于我的具体情况时遇到了麻烦。
此外,对于这个项目,我坚持使用<html>
<body>
<foo>First text Text</foo>
<c>Indiferent tag.</c>
<foo>Another "a" test. ěščřžýáíéúů</foo>
<c>Another indiferent tag.</c>
</body>
</html>
;我相信我只能使用XSLT 1.0和XPath 1.0。这些限制是我希望任何足以帮助我遵循的人。但是,我正在学习<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="html/body/a">
<foo>
<xsl:value-of select="concat(text(),folowing-sibling::b[1]/text())"/>
</foo>
</xsl:template>
,因此从学习的角度来看,使用高级版本的解决方案也是不错的选择。
最后,这只是来自较大HTML文件的示例片段,我正在尝试将其转换为有效的XML(对于我的用例来说很方便),并且涉及很多分组(我需要按键分组) python lxml
最终也是如此),因此该解决方案最好使用身份转换重载,这有望使我能够在此示例之后使用它……
解决方法
这是您可以执行此操作的方法。
虽然不确定问题末尾的分组评论,但是...
android:background="@null"