- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想了解更多默认的 Mozilla XSLT 是如何工作的,因为我喜欢默认显示 XML 文档的方式以及可以展开/最小化各种节点的方式。
我获得了以下副本:
我无法以相同的方式找到以下内容,而是通过 Mozilla 浏览器获取它们,并将它们保存在本地。IE。
chrome://global/locale/xml/prettyprint.dtd
所有四个文件都保存在同一个文件夹中。
准备了一些简单的 XML 并保存在同一个文件夹中:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="XMLPrettyPrint.xsl"?>
<breakfast_menu>
<food>
<name>Belgian Waffles</name>
<price>$5.95</price>
</food>
<food>
<name>Strawberry Belgian Waffles</name>
<price>$7.95</price>
</food>
</breakfast_menu>
在 XMLPrettyPrint.xsl 中,我编辑以下内容:
<xsl:template match="/">
<link href="chrome://global/content/xml/XMLPrettyPrint.css" type="text/css" rel="stylesheet"/>
<link title="Monospace" href="chrome://global/content/xml/XMLMonoPrint.css" type="text/css" rel="alternate stylesheet"/>
...
</xsl:template>
到
<xsl:template match="/">
<link href="XMLPrettyPrint.css" type="text/css" rel="stylesheet"/>
<link title="Monospace" href="XMLMonoPrint.css" type="text/css" rel="alternate stylesheet"/>
...
</xsl:template>
如果我打开 Mozilla 的 XML 文件,它只能部分工作。文档看起来格式正确,但颜色不存在,节点也没有折叠。
我还需要更改什么?
编辑 2016.03.29 @ 16:00
<xsl:template match="/">
<html>
<head>
<link href="XMLPrettyPrint.css" type="text/css" rel="stylesheet"/>
<link title="Monospace" href="XMLMonoPrint.css" type="text/css" rel="alternate stylesheet"/>
<div id="header" dir="&locale.dir;">
<p>
&xml.nostylesheet;
</p>
</div>
</head>
<body>
<xsl:apply-templates/>
</body>
</html>
</xsl:template>
更新@import url
/*@import url("resource://gre-resources/viewsource.css");*/
@import url("viewsource.css");
最佳答案
语法高亮(着色)CSS 规则在 viewsource.css 文件中定义,但它们仅适用于在 highlight
中具有祖先的元素。类(class)。
XMLPrettyPrint.xsl 文件不会生成任何带有 highlight
的内容类,所以你可以通过包装 <xsl:apply-templates/>
来解决这个问题从第一个xsl:template
在div
有这个类:
<div class="highlight">
<xsl:apply-templates/>
</div>
现在结果以彩色呈现,但它们太靠近左侧和 −
根元素上的缺失。这是因为 Mozilla pretty-print 渲染器似乎用一些填充物包围了结果,并且 −
在div
与 expander
类,其左边距为 -16px
.
你可以通过给你的包装器 div
来解决这个问题左边 16px 的内边距:
<div class="highlight" style="padding-left: 16px">
<xsl:apply-templates/>
</div>
您需要一些 JavaScript 才能使展开/折叠功能起作用。 XMLPrettyPrint.xml文件为此定义了代码。您可以通过将其放入 <script>
中将其包含在您的 XSLT 中。元素。
为了附加事件,您可以给包装器 div
一个 ID 并选择它以附加事件:
<div id="content" class="highlight" style="padding-left: 16px">
<xsl:apply-templates/>
</div>
<script>
<![CDATA[
document.getElementById('content').addEventListener('click', function (event) {
try {
var par = event.target;
if (par.nodeName == 'div' && par.className == 'expander') {
if (par.parentNode.className == 'expander-closed') {
par.parentNode.className = 'expander-open';
par.firstChild.data = '\u2212';
}
else {
par.parentNode.className = 'expander-closed';
par.firstChild.data = '+';
}
}
} catch (e) {
}
});
]]>
</script>
一旦你得到它,呈现的 HTML 应该像 Mozilla 的默认呈现器一样表现。
关于css - XSLT 试图在本地引用默认的 Mozilla 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36281502/
我有一个 XSLT 样式表,如下所示: 我想使用第二个 XSLT 样式表来转换此样式表,以删除与 XQHead
我们有一个大型 xslt,可以呈现整个商店区域,包括产品、制造商,并根据价格和类别进行过滤。我使用 sitecore 作为 CMS,但遇到缓存问题。我有大约 9000 个项目,有些页面需要长达 20
我想根据条件的结果应用具有不同参数的模板。像这样: Attribute no. 1
我有一些看起来像这样的 XML Foo Details Bar Details Baz Details Foo Blah Bar BlahBlah Baz BlahBlahBl
我试图从这种输入出发: a b c d e f g ... 使用 XSLT 的 HTML 输出: one two a e b f
我想知道如何在 xslt 中找到特定节点的第一个子节点名称。 我有一个 xml: some text 我可以使用 body/
是否可以在 XSLT 中获取上个月的最后一天?我找到了这个函数:http://www.xsltfunctions.com/xsl/functx_last-day-of-month.html但我不确定如
具有特定节点的匹配元素存在问题。 xml: description of profile PhoneKeyPad S
我将一堆键值对作为参数传递给 XSL(日期 ->“1 月 20 日”,作者 ->“Dominic Rodger”,...)。 我正在解析的一些 XML 中引用了这些 - XML 如下所示: 目前,除
我找不到这个问题的确切答案,所以我希望有人能在这里帮助我。 我有一个字符串,我想在最后一个 '.' 之后获取子字符串。我正在使用 xslt 1.0。 这是怎么做的?这是我的代码。
我在尝试找出 xslt 上的 var 范围时遇到问题。我实际上想要做的是忽略具有重复“旅游代码”的“旅行”标签。 示例 XML: X1 Budapest X1 Budapest X
我有一些数据在 xslt 的 for-each 循环中输出。我对列表进行了分页,但没有对排序选择器进行分页。 用户应该能够对 2 个值(创建的数据和每个项目的数字字段)进行排序。默认的排序方法是创建日
我有一个奇怪的要求。 我在 xslt 中有一个包含月份的变量,带有它们的 id (1-12) 问题是我需要全部显示它们,但从一月(1)以外的月份开始。 目前我有以下 JAN
如何在 xslt 转换中模块化一组重复的输出?例如,我有如下内容(伪代码)。 并
我得到一个像这样的字符串。 13091711111100222222003333330044444400 字符串的模式是这样的 13 - 09 - 17 - 11111 - 100 - 22222 -
我是 XSLT 的新手,有一个一般性问题。为了区分具有不同属性的两个元素,最好(也是为了性能)使用 和 而不是 在一个模板中。据我所知,这就是 XSLT 中应该“思考”的方式。但在我看来,这有一个缺点
如何从“19650512-0065”到“196505120065”这样的字符串中删除连字符 使用这个模板:传递 theID =
是否有任何功能可以在左侧填充零? 我正在尝试做的要求是: 我们不知道即将到来的输入字符串长度。 如果小于 20,我们必须在左侧填充零。 如果输入字符串长度为 10,那么我们必须在左侧填充 10 个零。
身份模板如下所示: 是否选择多于 ,或者身份模板可能是这样的? 当我执行以下操作时,究竟选择了什么? 最佳答案
我正在尝试使用 XML 信息和 XSLT 模板创建超链接。这是 XML 源代码。 Among individual stocks, the top percentage gainers in the
我是一名优秀的程序员,十分优秀!