如何使用XSLT在节点内获取值

时间:2018-09-04 04:56:42

标签: xslt

 <Value>
           <ntin>00300231145014
            <additionalDetails>
                                <detail name="reorderQuantity">10000</detail>
                                <detail name="SerialLength">12</detail>
                                <detail name="OriginalNtin"/>
                          </additionalDetails>
                    </ntin>
        </Value>

想要获取ntin的值00300231145014

2 个答案:

答案 0 :(得分:0)

XSLT使用XPath作为其表达语言,并且在XSLT / XPath / XQuery共享的数据模型中,ntin元素的第一个子节点有一个文本字符串,其字符串值为00300231145014 ,然后是第二个子节点是additionalDetails元素。

因此,您可以选择/Value/ntin/text()[1]选择该第一个文本节点的子节点,也可以选择示例中的/Value/ntin/node()[1],因为任何类型的第一个子节点都是该文本节点。但是,该节点的字符串值将在数字之后和additionalDetails元素之前包括空格。因此,如果您只想要带有数字的字符串,则可以使用normalize-space(/Value/ntin/text()[1])

答案 1 :(得分:0)

您需要在<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/> <xsl:template match="/"> <xsl:value-of select="/Value/ntin[1]/text()[1]"/> </xsl:template> </xsl:stylesheet> 中使用简单的X-Path来实现所需的输出:

var btn  = document.querySelector("#openWindow");
btn.onclick = function(){
    window.open("b.html","nameB");
    window.open("c.html","nameC");
};