- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
下面是用作源的 XML 文件:
<?xml version="1.0" encoding="UTF-8" ?>
<billing-log>
<log-start-date>2012-08-17T00:00:00-05:00</log-start-date>
<player-name>Player1</player-name>
<schema-version>1</schema-version>
<player-uuid>12345</player-uuid>
<log-end-date>2012-08-17T23:59:59.999-05:00</log-end-date>
<entry>
<page>Page1</page>
<path>Path1</path>
<in>2012-08-16T23:59:52.170-05:00</in>
<out>2012-08-17T00:00:00.186-05:00</out>
</entry>
<entry>
<page>Page2</page>
<path>Path2</path>
<in>2012-08-17T00:00:00.186-05:00</in>
<out>2012-08-17T00:00:08.561-05:00</out>
</entry>
</billing-log>
我使用的xsl文件是这样的:
<?xml version="1.0"?>
<xsl:stylesheet version = "1.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="log-start-date"></xsl:template>
<xsl:template match="player-name"></xsl:template>
<xsl:template match="schema-version"></xsl:template>
<xsl:template match="player-uuid"></xsl:template>
<xsl:template match="log-end-date"></xsl:template>
<xsl:template match="//entry">
<xsl:text>"</xsl:text>
<xsl:value-of select="normalize-space(page)"/><xsl:text/>
<xsl:text>","</xsl:text>
<xsl:value-of select="normalize-space(path)"/><xsl:text/>
<xsl:text>","</xsl:text>
<xsl:value-of select="normalize-space(in)"/><xsl:text/>
<xsl:text>","</xsl:text>
<xsl:value-of select="normalize-space(out)"/><xsl:text/>
<xsl:text>" </xsl:text>
<xsl:text disable-output-escaping = "yes" >
</xsl:text>
</xsl:template>
</xsl:stylesheet>
我将这些输入到以下 c# 控制台应用程序以将其转换为 CSV 并将其写入文件。:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
namespace xml2csv
{
class Program
{
static int Main(string[] args)
{
if (args.Length != 3)
{
System.Console.WriteLine("Wrong number of aruguments");
return -1;
}
string xmlFile = args[0];
string xslFile = args[1];
string outputFile = args[2];
//Create a new XML document and load the XML file
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlFile);
//Create an XSLT object and load the XSLT file
XslCompiledTransform xslTran = new XslCompiledTransform();
xslTran.Load(xslFile);
// This is for generating the output
XmlTextWriter writer = new XmlTextWriter(outputFile, System.Text.Encoding.ASCII);
//Apply the transformation and write disk
xslTran.Transform(xmlDoc, null, writer);
//Close the writer
writer.Close();
return 1;
}
}
}
它产生的结果是:
"Page1","Path1","2012-08 16T23:59:52.170-05:00","2012-08-17T00:00:00.186-05:00"
"Page2","Path2","2012-08-17T00:00:00.186-05:00","2012-08-17T00:00:08.561-05:00"
我想要的是将日志结束日期的兄弟节点值添加到入口节点的记录中。所以输出看起来像这样:
"2012-08-17T23:59:59.999-05:00","Page1","Path1","2012-08 16T23:59:52.170-05:00","2012-08-17T00:00:00.186-05:00"
"2012-08-17T23:59:59.999-05:00","Page2","Path2","2012-08-17T00:00:00.186-05:00","2012-08-17T00:00:08.561-05:00"
如有任何帮助,我们将不胜感激。
最佳答案
只需添加:
<xsl:value-of select="concat('"',normalize-space(../log-end-date),'"')"/>
作为 entry
模板的第一个 child 。
关于c# - XSLT 将 xml 转换为 csv 并为每条记录重复同级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13314820/
我正在尝试使此 OSX 代码(golfed 以便于讨论)在 Ubuntu Linux 上运行。 cat >main.c #include #include void provided_by_ma
带有 .next() jquery 方法的小选择器让我发疯。 故事是这样的,我在表行上使用 Bootstrap 过滤器和 jquery。当过滤器执行时,它会将显示样式属性更改为 table-row,如
无法理解为什么此代码将 DIV 元素的颜色更改为蓝色,但不更改 SPAN 元素的颜色。有什么想法吗? $(document).ready(function(){ $
这个问题在这里已经有了答案: How can I target a specific group of siblings in a flat hierarchy? (1 个回答) 关闭 6 年前。
请看here ,左侧的菜单应该在复选框选中的属性上滑入和滑出,但我的 CSS 不工作,任何人都可以帮助我。在我的代码菜单中,当前设置为 left:-240px,因为它应该滑入 left:0 选中复选框
我正在创建的这个系统遇到了问题。我总共有四个兄弟 div 容器。它们在普通桌面 View 中是这样的: 蓝红蓝红 这适用于 2/3 视口(viewport)以将 background-color 显示
使用 UITabBar,我有 4 个同级 View (每个选项卡项目一个)。加载应用程序时,第一个选项卡项目和 View 可见。第一个 View 有一个发布 NSNotification 的 IBAc
这个问题已经有答案了: Self-references in object literals / initializers (31 个回答) 已关闭 9 年前。 我有一个json结构如下:
我有多个带有标题、描述和号召性用语的产品。每个的字数没有规定。我正在使用 flexbox 来展示这些产品,这样每个元素的容器高度相等,并且可以轻松地清除到下一行,而不必弄乱第 nth-child。 我
我正在努力解决 IE7 问题。我希望我的兄弟 div 与其 sibling 的宽度相同。第一个 sibling 充当标题,而其他 sibling 有一定的尺寸。我可以使用一些建议。 http://js
我正在创建 3 行,每行有 4 列。但我想要实现的是,当 1 调整一行中任何列的大小时,其余列应根据行的总剩余宽度调整大小。假设如果行的总宽度为 100%,并且如果我将第一列的大小调整 60%,则剩余
到目前为止,我有以下cinoptions: cino= cino+=:0 cino+=g0 cino+=p0 cino+=(0 cino+={0 cino+=l1 cino+=t0 cino+=u2
如果我没有解释清楚,请提前道歉。我会尽力澄清我正在尝试做的事情。事不宜迟...假设您在页面上有一系列数字(仅由一个空格分隔),其中括号表示您所在的当前页面。 在页面上看起来是这样的: [1] 2 3
我的 parent 中有两个 sibling ,并且 sibling 的数据正在更新,数据已更新,但是 ngOnInit(){} 未调用。 https://stackblitz.com/edit/an
我正在创建一个可滑动的菜单,它可以正常工作,但有一个方面除外。我希望菜单始终具有 100% 的高度……无论用户在页面上向下滚动多远。但是,每当我将其设置为 height: 100%; 时,菜单都不会滑
first-child last-child first-child-1 last-chi
我想显示一个评论列表以及每个评论的评论列表等等: 这是我的 HTML 代码: Titre d'un commentaire statique Qui cum ven
我进行了彻底的搜索,但没有找到任何关于如何查询和检索多个 XML 同级的值的示例或指导。 有很多关于如何检索单个兄弟值的示例。 例如,给出以下 XML 片段: 800000 80000
这个问题已经有答案了: Is there a "previous sibling" selector? (33 个回答) 已关闭 7 年前。 在 CSS 中,如果同级元素位于输出中的上方(HTML 中
console.log((this).sibling('.advanceOptWrap')); 以上代码返回 Uncaught TypeError: $(...).sibling is not a f
我是一名优秀的程序员,十分优秀!