我向xml Web服务发出请求,并获得响应.然后将此响应(作为流)保存为字符串.问题是,响应中充满了标签,CDATA等(正如您所期望的那样).正如预期的那样,也没有线路突破.
我想取这个表示xml文档的字符串,并删除它的所有标记,但保留实际值,并确保每条记录都在一行中,所以:
<Record>
<name>adam</name>
<telephoneno>000</telephonenumber>
</Record>
<Record>
<name>mike</name>
<telephoneno>001</telephonenumber>
</Record>
Run Code Online (Sandbox Code Playgroud)
将转变为:
adam 000
mike 001
Run Code Online (Sandbox Code Playgroud)
标题是一个简单的问题,但我怎么能实现这一目标?我已经尝试了数据表和数据集,但我不认为他们对实现我想要做的事情有很大的支持.
这正是XSLT的用途!它将XML文件转换为不同的输出.在您的情况下,您可以使用相对简单的XSL转换来输出列表.
这可能会这样做:
records.xml:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
<Records>
<Record>
<name>adam</name>
<telephonenumber>000</telephonenumber>
</Record>
<Record>
<name>mike</name>
<telephonenumber>001</telephonenumber>
</Record>
</Records>
Run Code Online (Sandbox Code Playgroud)
style.xsl
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="text" omit-xml-declaration="yes" indent="no"/>
<xsl:template match="Record">
<xsl:value-of select="name"/><xsl:text> </xsl:text><xsl:value-of select="telephonenumber"/>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
我用这个工具测试它,它的工作原理.
| 归档时间: |
|
| 查看次数: |
1913 次 |
| 最近记录: |