我一直在修补这个问题太久了,似乎无法在任何地方找到答案 - 或许我不知道如何提出问题。
我有一个代表站点地图的XML文件。
ProcessBuilder builder = new ProcessBuilder("cat", "/proc/meminfo");
// Append all errors from process to log file:
builder.redirectError(Redirect.appendTo(new File("/tmp/my.log")));
Process process = builder.start();
此XML表示站点地图。我编写了一个XSLT来将其转换为分层列表。
using (SqlConnection con = new SqlConnection("Data Source=hans-pc;Initial Catalog=CntExp;Integrated Security=True"))
{
SqlCommand cmd = new SqlCommand("INSERT INTO PreExp1 (Expe, Usuario) values (@Expe, @Usuario)", con);
cmd.Parameters.AddWithValue("@Expe", TextBox1.Text);
cmd.Parameters.AddWithValue("@Usuario", TextBox2.Text);
//cmd.Parameters.AddWithValue("@Fecha", Datenow());
con.Open();
int insertar = cmd.ExecuteNonQuery();
Response.Write("Inserted" + insertar.ToString());
}
当我有<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://...</loc>
<pagetitle>English</pagetitle>
<children>
<url>
<loc>http://...</loc>
<pagetitle>page title</pagetitle>
</url>
<children>
...
时,此样式表不起作用,但是如果我将节点更改为仅使用<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes" version="4.0"/>
<xsl:template match="/">
<ul><xsl:apply-templates /></ul>
</xsl:template>
<xsl:template match="url">
<li><a href="{loc}"><xsl:value-of select="pagetitle"/></a></li>
<xsl:apply-templates select="children"/>
</xsl:template>
<xsl:template match="children">
<ul><xsl:apply-templates select="url"/></ul>
</xsl:template>
</xsl:stylesheet>
(没有属性),则它可以正常工作。
我远离XSLT大师。有人有建议吗?
答案 0 :(得分:0)
找到它。我刚刚将它添加到我的XSLT中,它显然复制了它,但剥离了命名空间。
<!-- by default, copy all nodes -->
<xsl:template match="*" mode="copy-no-namespaces">
<xsl:element name="{local-name()}">
<xsl:copy-of select="@*"/>
<xsl:apply-templates select="node()" mode="copy-no-namespaces"/>
</xsl:element>
</xsl:template>