我正在尝试创建一个XSLT文件,我可以使用该文件在http://finance.yahoo.com/webservice/v1/symbols/allcurrencies/quote?format正确导入Yahoo所有货币Feed。 我想最终将它构建到VBA中以自动导入。
xml 文件如下所示(但还有更多货币):
<list version="1.0">
<meta>
<type>resource-list</type>
</meta>
<resources start="0" count="174">
<resource classname="Quote">
<field name="name">USD/KRW</field>
<field name="price">1174.170044</field>
<field name="symbol">KRW=X</field>
<field name="ts">1484857724</field>
<field name="type">currency</field>
<field name="utctime">2017-01-19T20:28:44+0000</field>
<field name="volume">0</field>
</resource><resource classname="Quote">
<field name="name">SILVER 1 OZ 999 NY</field>
<field name="price">0.053778</field>
<field name="symbol">XAG=X</field>
<field name="ts">1484857681</field>
<field name="type">currency</field>
<field name="utctime">2017-01-19T20:28:01+0000</field>
<field name="volume">36</field>
</resource></resources>
</list>
<!-- iapi4.finance.bf1.yahoo.com Thu Jan 19 15:30:54 EST 2017 -->
我尝试过创建一个XSLT文件,但我认为这是完全错误的。我看了一些不同的例子,但我无法弄清楚如何为提供的文件进行自定义。我相信很多用户会对使用这个文件感兴趣,并且可以为许多不同的人重新使用它。
答案 0 :(得分:2)
从Parfait的优秀答案here无耻地窃取,我想出了XSLT文件
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="list">
<xsl:apply-templates select="@*|node()"/>
</xsl:template>
<xsl:template match="meta">
<!-- omit -->
</xsl:template>
<xsl:template match="resource">
<xsl:copy>
<xsl:for-each select="*">
<xsl:if test="@*">
<xsl:element name="{@*}"><xsl:value-of select="."/></xsl:element>
</xsl:if>
</xsl:for-each>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
将源XML文件转换为
<?xml version="1.0" encoding="UTF-16"?>
<resources start="0" count="174">
<resource>
<name>USD/KRW</name>
<price>1174.170044</price>
<symbol>KRW=X</symbol>
<ts>1484857724</ts>
<type>currency</type>
<utctime>2017-01-19T20:28:44+0000</utctime>
<volume>0</volume>
</resource>
<resource>
<name>SILVER 1 OZ 999 NY</name>
<price>0.053778</price>
<symbol>XAG=X</symbol>
<ts>1484857681</ts>
<type>currency</type>
<utctime>2017-01-19T20:28:01+0000</utctime>
<volume>36</volume>
</resource>
</resources>
<!-- iapi4.finance.bf1.yahoo.com Thu Jan 19 15:30:54 EST 2017 -->
哪个Access可以导入名为[resource]的表。
答案 1 :(得分:0)