- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在互联网上(也在这个论坛上)找到了很多解决这个问题的方法,但我仍然可以解决我的问题。
我有这个代码:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:tei="http://www.tei-c.org/ns/1.0"
exclude-result-prefixes="#default">
<xsl:output omit-xml-declaration="yes" standalone="no" method="xml" indent="no" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="tei:body">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
<back>
<div>
<xsl:for-each select="//tei:rs[@type='luogo']">
<p><xsl:value-of select="."/></p>
</xsl:for-each>
</div></back>
</xsl:template>
</xsl:stylesheet>
<back xmlns="" xmlns:tei="http://www.tei-c.org/ns/1.0"><div>....</div></back>
<TEI xmlns="http://www.tei-c.org/ns/1.0">
<xsl:template match="@*|node()[not(self::*)]">
<xsl:copy/>
</xsl:template>
<xsl:template match="*">
<xsl:element name="{local-name()}">
<xsl:apply-templates select="node()|@*"/>
</xsl:element>
</xsl:template>
<xsl:template match="*">
<xsl:element name="{local-name()}">
<xsl:apply-templates select="@*|*"/>
</xsl:element>
</xsl:template>
<xsl:template match="tei:back">
<xsl:attribute name="{local-name()}">
<xsl:value-of select="."/>
</xsl:attribute>
</xsl:template>
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="file:/C:/Users/User/Desktop/prova2.xsl"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0">
<teiHeader><fileDesc>
<titleStmt>
<title>AA</title>
</titleStmt>
<publicationStmt><p><!-- supply publication information --></p></publicationStmt>
<sourceDesc>
<bibl>AA</bibl>
</sourceDesc>
</fileDesc><profileDesc>
<langUsage>
<language ident="ita">AA</language>
<language ident="lat">AA</language>
</langUsage>
</profileDesc></teiHeader>
<text>
<body>
<div type="book" n="3" xml:id="L3">
<head>AA
</head>
<div type="cap" n="1" xml:id="L3-01">
<head>AA</head>
<p>AA
<pb n="200"/>AA
</p>
</div>
</div>
</body>
</text>
</TEI>
<?xml-stylesheet type="text/xsl" href="file:/C:/Users/User/Desktop/prova2.xsl"?><TEI xmlns="http://www.tei-c.org/ns/1.0">
<teiHeader><fileDesc>
<titleStmt>
<title>AA</title>
</titleStmt>
<publicationStmt><p><!-- supply publication information --></p></publicationStmt>
<sourceDesc>
<bibl>AA</bibl>
</sourceDesc>
</fileDesc><profileDesc>
<langUsage>
<language ident="ita">AA</language>
<language ident="lat">AA</language>
</langUsage>
</profileDesc></teiHeader>
<text>
<body>
<div type="book" n="3" xml:id="L3">
<head>AA
</head>
<div type="cap" n="1" xml:id="L3-01">
<head>AA</head>
<p>AA
<pb n="200"/>AA
</p>
</div>
</div>
</body><back xmlns="" xmlns:tei="http://www.tei-c.org/ns/1.0"><div/></back>
</text>
</TEI>
最佳答案
出现此问题是因为在您的输入 XML 文档中,所有元素都已指定为位于 namespace “http://www.tei-c.org/ns/1.0”内。但是,在您的 XSLT 中,您正在创建新元素(在 tei:body
模板中),但您没有指定新元素的 namespace 。这意味着新元素,例如 back
创建时没有命名空间,因此输出 XML 包含额外的命名空间标记来指示这一点。
解决此问题的一种方法是在创建元素时指定命名空间。而不是这样做......
<back>....</back>
<xsl:element name="back" namespace="http://www.tei-c.org/ns/1.0">....</xsl:element>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:tei="http://www.tei-c.org/ns/1.0" exclude-result-prefixes="#default">
<xsl:output omit-xml-declaration="yes" standalone="no" method="xml" indent="no"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="tei:body">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
<xsl:element name="back" namespace="http://www.tei-c.org/ns/1.0">
<xsl:element name="div" namespace="http://www.tei-c.org/ns/1.0">
<xsl:for-each select="//tei:rs[@type='luogo']">
<xsl:element name="p" namespace="http://www.tei-c.org/ns/1.0">
<xsl:value-of select="."/>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
<TEI xmlns="http://www.tei-c.org/ns/1.0">
<teiHeader>
<fileDesc>
<titleStmt>
<title>AA</title>
</titleStmt>
<publicationStmt>
<p><!-- supply publication information -->
</p>
</publicationStmt>
<sourceDesc>
<bibl>AA</bibl>
</sourceDesc>
</fileDesc>
<profileDesc>
<langUsage>
<language ident="ita">AA</language>
<language ident="lat">AA</language>
</langUsage>
</profileDesc>
</teiHeader>
<text>
<body>
<div type="book" n="3" xml:id="L3">
<head>AA </head>
<div type="cap" n="1" xml:id="L3-01">
<head>AA</head>
<p>AA
<pb n="200"/>AA
</p>
</div>
</div>
</body>
<back>
<div/>
</back>
</text>
</TEI>
关于xml - 省略额外的 xlmns 和 xmlns :tei that appear when I apply my transformation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12268229/
我想这更像是一个最佳实践问题。但是每个 Layout 元素(LinearLayout、ReleativeLayout 等)都需要一个 xmlns:android 标签吗?我知道根标签需要它,但子布局元
我在互联网上(也在这个论坛上)找到了很多解决这个问题的方法,但我仍然可以解决我的问题。 我有这个代码:
我正在将 XmlElement 添加到现有文档,但添加了一个额外的属性。这是代码: XmlNode manifest = this.getManifestNode (); XmlElement man
在admob testad中,在xmlns:ads设置中,我们使用哪个? 1) http://schemas.android.com/apk/lib/com.android.google.gms.ad
我是一名优秀的程序员,十分优秀!