Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml XSLT和XPath有问题吗_Xml_Xslt_Xpath_Xslt 2.0_Xpath 2.0 - Fatal编程技术网

Xml XSLT和XPath有问题吗

Xml XSLT和XPath有问题吗,xml,xslt,xpath,xslt-2.0,xpath-2.0,Xml,Xslt,Xpath,Xslt 2.0,Xpath 2.0,我一直在浪费大量时间试图弄清楚xslt是如何工作的 我有这个xml <?xml version="1.0" encoding="UTF-8"?> <lvl:map xsi:schemaLocation="http://www.ohmeudeus.com lvlMl-v2.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:lvl="http://www.ohmeudeus.com"> &

我一直在浪费大量时间试图弄清楚xslt是如何工作的

我有这个xml

<?xml version="1.0" encoding="UTF-8"?>

<lvl:map xsi:schemaLocation="http://www.ohmeudeus.com lvlMl-v2.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:lvl="http://www.ohmeudeus.com">
   <name>String</name>
   <myColor>fffffffff</myColor>
</lvl:map>
现在我想通过使用xslt,用字符串这个词创建一个html

所以我的xslt类似于

   <?xml version="1.0" encoding="UTF-8"?>
   <xsl:stylesheet version="2.0" 
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
   xmlns="http://www.w3.org/1999/xhtml" 
   xmlns:lvl="http://www.ohmeudeus.com lvlMl-v2.xsd">
<xsl:template match="lvl:map">
    <html>
        <head>
            <title>
                normal title
            </title>
            <link href="style.css" rel="stylesheet" type="text/css"/>
        </head>
        <body>
            The name is <xsl:value-of select="name"/>
        </body>
    </html>
</xsl:template>

</xsl:stylesheet>
结果给了我姓名和颜色 像这样:

字符串fffffffff

我不明白我做错了什么。。。请帮帮我


此外,我接受您提供的任何帮助我查找bug的提示。

我发现了两个问题

结尾不见了。 不应该有架构位置,只有命名空间。
修复此问题后,您应该会得到名称为String。

我发现了两个问题

结尾不见了。 不应该有架构位置,只有命名空间。
修复此问题后,您应该得到名称为String。

这是因为XML中的XMLN:

xmlns:lvl="http://www.ohmeudeus.com"
与XSLT中的xmlns不匹配:

xmlns:lvl="http://www.ohmeudeus.com lvlMl-v2.xsd"

这是因为XML中的XMLN:

xmlns:lvl="http://www.ohmeudeus.com"
与XSLT中的xmlns不匹配:

xmlns:lvl="http://www.ohmeudeus.com lvlMl-v2.xsd"

当我运行已发布的XSLT,并将名称空间固定在已发布的XML上时,我得到以下结果。这不是必需的输出吗

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:lvl="http://www.ohmeudeus.com">
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      <title>normal title</title>
      <link href="style.css" rel="stylesheet" type="text/css" />
   </head>
   <body>The name is String</body>
</html>

当我运行已发布的XSLT,并将名称空间固定在已发布的XML上时,我得到以下结果。这不是必需的输出吗

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:lvl="http://www.ohmeudeus.com">
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
      <title>normal title</title>
      <link href="style.css" rel="stylesheet" type="text/css" />
   </head>
   <body>The name is String</body>
</html>

关于样式表关闭,这是一个堆栈溢出粘贴错误。我从xmlns:lvl中删除了lvlMl-v2.xsd,没有做任何更改,但它是真的,这是关于样式表闭包的错误,是堆栈溢出粘贴错误。我从xmlns:lvl中删除了lvlMl-v2.xsd,没有做任何更改,但它是真的,这是一个错误。当我运行已发布的XLST时,针对已发布的XML修复了名称空间,我得到以下结果。-名称空间是唯一的问题。当我运行发布的XLST时,名称空间针对发布的XML进行了修复,我得到了以下结果。-名称空间是唯一的问题。