xml
  • xslt
  • 2016-01-14 29 views 0 likes 
    0

    我正在处理下面那些我无法理解的代码,特别是select=部分中的内容。我不知道如何分解它(我假设有一个更好的格式化方法),并且不能说明这些部分是如何相互作用的。XSLT中的选择属性使用哪种语言?

    <xsl:for-each select="field[@key = 'household_live'][@prompt != current()/prompt[@key = 'household_live'][text() = 'Parent 1']/@id][@prompt != current()/prompt[@key = 'household_live'][text() = 'Parent 2']/@id]"> 
        <xsl:variable name="id" select="position()" /> 
        <xsl:variable name="name" select="concat(parent::*/field[@key = fw:replace(current()/@key, 'live', 'first')][@order = current()/@order]/text(), ' ', parent::*/field[@key = fw:replace(current()/@key, 'live', 'last')][@order = current()/@order]/text())" /> 
        <xsl:for-each select="parent::application"> 
    

    我不确定@的用途是什么或括号如何交互。 \也混淆了我,因为我猜测它没有划分任何东西。

    从本质上讲,我使用的语言和语法是什么?

    回答

    2

    语言是XPath。 XPath是专门用于导航XML文档结构的语言,@符号表示属性,/符号用作路径说明符,它是文件系统中类似文件的排序,除了XML文档中的节点之外。 XPath带有各种函数,如position(),concat()等。Axes说明符像parent :: etc.

    XPath与XSLT紧密协作。它几乎是XSLT文档访问正在阅读的XML文档的方式。

    只是谷歌XPath的更多信息。

    MDN教程here

    +0

    谢谢! 'XPath'这个词就是我所需要的。谷歌搜索的代码片段并没有提出那么多。 – Ray

    +0

    @射线:请[**接受**](http://meta.stackoverflow.com/q/5234/234215)这个答案,如果它对你最有帮助。谢谢。 – kjhughes

    1

    这是XPath

    XPath是用于选择XML文档各部分的绝妙表达标准。 XSLT严重依赖它。您必须为XSLT学习它,但它的用处超越了XSLT:它用于XML Schema,许多其他语言都有XPath库。必须选择XML文档的任何部分都很重要,包括测试XML,网页抓取和其他应用程序。

    XPath是XML,因为正则表达式是文本。

    强烈建议添加到您的工具箱。

    相关问题