小编Tim*_*m C的帖子

XSLT将XML转换为文本

我有一个要求,我需要从XML文档生成一个文本文件,生成的文本文件应该是基于某些规则的某种特定格式.我的XML看起来如下所示:

<info>
 <Tag1>
  <Tag2>
   <Tag3>
    <PartNo>12 </PartNo>
   </Tag3>
   <DBOMInf1> 111 </DBOMInf1>
   <DBOMInf2> sring </DBOMInf2>
   </Tag2>
   <Tag2>
    <Tag3>
     <PartNo>12 </PartNo>
    </Tag3>
    <DBOMInf1> 555 </DBOMInf1>
    <DBOMInf2> abcd </DBOMInf2>
   </Tag2>
  </Tag1>
  <Tag4>
   <Tag5>
    <Description>1200 liter </Description>
    <No>12</No>
    <Name>Engine</Name>
    <Id>700</Id>
   </Tag5>
  </Tag4>
  <action>
   <actionId>700</actionId>
  </action>
</info>
Run Code Online (Sandbox Code Playgroud)
  • 文本中的预期输出格式:

ACTIONID | NO | DESCRIPTION | NAME | DBOMInf1 | DBOMInf2 700 | 12 |发动机| 1200升| 111 | sring 700 | 12 |发动机| 1200升| 555 | ABCD

我是新手XSLT编程可以任何机构共享一些信息或示例如何实现这一点,我熟悉XSLT的基础,如模板匹配,选择值.

任何链接或示例都将非常有用.谢谢

xslt

4
推荐指数
1
解决办法
2万
查看次数

在MDX中列出成员及其所有后代的最佳方法是什么?

在我使用的OLAP数据库中,有一个"位置"层次结构,包括级别Company,Region,Area,Site,Room,Till.对于某个特定公司,我需要编写一些列出所有地区,区域和站点的MDX(但不包括站点下面的任何级别).目前我通过以下MDX实现了这一目标

HIERARCHIZE({
[Location].[Test Company], 
Descendants([Location].[Test Company], [Location].[Region]), 
Descendants([Location].[Test Company], [Location].[Area]), 
Descendants([Location].[Test Company], [Location].[Site])
})
Run Code Online (Sandbox Code Playgroud)

因为我对MDX的了解有限,我想知道是否有一种更简单的方法可以做到这一点,用一个命令而不是四个命令?是否有一种不那么冗长的方法来实现这一目标,还是我的榜样是实现这一目标的唯一真正方式?

mdx

3
推荐指数
1
解决办法
626
查看次数

在Ruby on Rails 3.0.5中以高精度使用number_with_precision

我正在研究Ruby-on-Rails 3.0.5应用程序,该应用程序具有许多数字字段。上面的那些人已经裁定,所有数字“数量”字段的存储精度为15(即小数点后15位)。

在一个特定的字段中,存储的数字为99999.999999999900000。要将其显示在屏幕上,应用程序只需执行此操作

<%= number_with_precision(item.quantity, :precision => 15) %>
Run Code Online (Sandbox Code Playgroud)

但是,这将在页面上显示以下内容

99999.999999999898137
Run Code Online (Sandbox Code Playgroud)

同样,当输入99999.999999999999999(是的,是的。小数点后15位)时,该数字将显示为100000.000000000000000,即使它存储在数据库中,其所有荣耀都为9。

我可以删除对number_with_precision的使用,而只需执行<%= item.quantity%>,这样就可以正常显示,但是我相信number_with_precision对于本地化是必需的(这对于应用程序很重要)。

那么,这是number_with_precision的错误吗?是否有另一种方式格式化与本地化兼容的大精度数字?还是由于浮点运算而无法避免?

我的确意识到,输入如此多的小数位数是不必要的,降低精度水平可能是要走的路,但是我将需要有说服力的论据来说服即将成为现实的力量。

ruby-on-rails ruby-on-rails-3

1
推荐指数
1
解决办法
407
查看次数

如何修复 XSLT 中的特殊字符

我正在处理下面的 XML,其中我需要删除名字中的特殊字符。(Andr\xc3\xa9s) 中的 \xc3\xa9 不确定这个字符的实际名称是什么。如果我按原样处理名字,那么供应商系统就会失败

\n\n
<?xml version="1.0" encoding="UTF-8"?>\n<reportentry>\n<reportdata>\n    <id>12345</id>\n    <firstname>Andr\xc3\xa9s</firstname>\n    <lastname>Williams</lastname>\n</reportdata>\n</reportentry>\n
Run Code Online (Sandbox Code Playgroud)\n\n

我只是尝试了有效的替换功能,下面是代码。不知道有没有更好的方法来处理?有什么建议 ?

\n\n
 <xsl:value-of select="replace($string1, \'\xc3\xa9\', \'e\')"/>\n
Run Code Online (Sandbox Code Playgroud)\n\n

完整代码

\n\n
<?xml version="1.0" encoding="UTF-8"?>\n<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"\nxmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0">\n\n<xsl:variable name="string1" select="/reportentry/reportdata/firstname"/>\n<xsl:variable name="comma" select="\',\'"/>\n<xsl:output method="text" omit-xml-declaration="yes"/>\n\n<xsl:template match="/reportentry">\n\n    <xsl:value-of select="reportdata/id"/>\n    <xsl:value-of select="$comma"/>\n    <xsl:value-of select="replace($string1, \'\xc3\xa9\', \'e\')"/>\n    <xsl:value-of select="$comma"/>\n    <xsl:value-of select="reportdata/lastname"/>\n\n</xsl:template>\n</xsl:stylesheet>\n
Run Code Online (Sandbox Code Playgroud)\n\n

我预期结果为 12345,Andres,Williams

\n

xslt special-characters

1
推荐指数
1
解决办法
1102
查看次数