在这个线程中,我引用了我的上一个线程:使用XSLT将XML转换为CSV - 动态列.
引用线程中的XSLT脚本工作正常但是使用大型XML文档时性能不佳.现在我想编写一个XSLT脚本,输出另一个XSLT脚本,该脚本将输出最终的CSV文件.
题:
如何编写第一个XSLT脚本?输出应如下所示:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/*">
<xsl:text>Name;</xsl:text>
<xsl:text>Brother;</xsl:text>
<xsl:text>Sister</xsl:text>
<-- this part is dynamic -->
<xsl:apply-templates select="Person" />
</xsl:template>
<xsl:template match="Person">
<xsl:value-of select="Name" />
<xsl:value-of select="Brother" />
<xsl:value-of select="Sister" />
<-- this part is dynamic too -->
<xsl:text> </xsl:text>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
输入的XML文件与引用的线程中的相同:
<Person>
<Name>John</Name>
<FamilyMembers>
<FamilyMember>
<Name>Lisa</Name>
<Type>Sister</Type>
</FamilyMember>
<FamilyMember>
<Name>Tom</Name>
<Type>Brother</Type>
</FamilyMember>
</FamilyMembers>
</Person>
<Person>
<Name>Daniel</Name>
<FamilyMembers>
<FamilyMember>
<Name>Peter</Name>
<Type>Father</Type>
</FamilyMember>
</FamilyMembers>
</Person>
Run Code Online (Sandbox Code Playgroud)
对于每个不同的类型元素,在生成的XSLT脚本中应该有如下所示的一行: …
我想使用实体框架在sql server中创建一个临时表。有什么办法可以做到吗?如果我可以创建一个临时表,那么我的下一个问题是如何读取它?
提前致谢。
安德烈
我用C#代码创建了一个TabControl.我将其ItemsSource绑定到一个集合并设置边距.出于某种原因,设置其DisplayMemberPath不会工作.
_tabControl = new TabControl();
_tabControl.Margin = new Thickness(5);
_tabControl.DisplayMemberPath = "Header";
_tabControl.SetBinding(ItemsControl.ItemsSourceProperty, itemsSourceBinding);
Run Code Online (Sandbox Code Playgroud)
集合中的每个项目都有一个名为"Header"的属性.
为什么这不起作用?
安德烈
编辑:这是所有相关的代码:
public partial class VariationGroupPreviewOptionsView
{
public string Header { get; set; }
public VariationGroupPreviewOptionsView()
{
InitializeComponent();
DataContext = new VariationGroupPreviewOptionsViewModel();
}
}
private void OptionsCommandExecute()
{
var dlg = new OptionsDialog();
dlg.ItemsSource = new List<ContentControl>() {new VariationGroupPreviewOptionsView(){Header = "Test"}};
dlg.ShowDialog();
}
public class OptionsDialog : Dialog
{
public static readonly DependencyProperty ItemsSourceProperty =
DependencyProperty.Register("ItemsSource", typeof (IEnumerable), typeof (OptionsDialog), new PropertyMetadata(default(IEnumerable)));
public IEnumerable …
Run Code Online (Sandbox Code Playgroud)