Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
特定web服务中的XML到CSV_Xml_Web Services_Csv_Xslt - Fatal编程技术网

特定web服务中的XML到CSV

特定web服务中的XML到CSV,xml,web-services,csv,xslt,Xml,Web Services,Csv,Xslt,我试图做的是将全球天气GetCitiesByCountry Web服务XML转换为CSV 我有XML: <string xmlns="http://www.webserviceX.NET"> <NewDataSet> <Table> <Country>Canada</Country> <City>Quaqtaq Airport</City>

我试图做的是将全球天气GetCitiesByCountry Web服务XML转换为CSV

我有XML:

<string xmlns="http://www.webserviceX.NET">
    <NewDataSet>
        <Table>
            <Country>Canada</Country>
            <City>Quaqtaq Airport</City>
        </Table>
        <Table>
            <Country>Canada</Country>
            <City>Hudson Bay, Sask.</City>
        </Table>
这个XSL只生成XML头,没有更多的数据

编辑:

所以答案是文件的编码。代码页在UTF-8和UTF-16之间移动。我只需将XML中的字符串“UTF-16”更改为“UTF-8”,或者更改文件的代码页


我使用了相同的XSL。

只需删除名称空间xmlns=”http://www.webserviceX.NET“从PBIE提到的输入或尝试此


;



首先,您有一个名称空间问题。例如,这对我帮助不大。仍然没有结果。“仍然没有结果。”发布你修改过的样式表。如果你知道解决方案,就发布它。@pbies:与其坚持按你想要的形式填鸭式地给出答案,不如阅读迈克尔的。它适用于你的情况(尽管这个问题可能不是传统意义上的重复);理解Michael的答案对于在这一领域工作和解决您的特定问题至关重要。谢谢。解决方案是编写处理给定输入的XSLT,而不是修改输入(这可能是不可能的)。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="text" version="1.0" encoding="UTF-8" indent="no"/>
  <xsl:template match="/">
    <xsl:for-each select="string/NewDataSet/Table">
      <xsl:value-of select="Country"/>
      <xsl:text>;</xsl:text>
      <xsl:value-of select="City"/>
      <xsl:text>&#13;&#10;</xsl:text>
    </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>
Canada;Quaqtaq Airport
Canada;Hudson Bay, Sask.