剥离xml文档中的标记,删除换行符并添加自定义换行符
本文关键字:换行符 删除 添加 自定义 文档 xml 剥离 | 更新日期: 2023-09-27 17:48:53
我向一个xml web服务发出请求,并得到响应。这个响应是一个流,然后被保存到一个字符串中。问题是,响应中充满了标签、CDATA等(正如您所料)。正如预期的那样,也没有断线。
我想取这个表示xml文档的字符串,去掉它的所有标记,但保留实际值,并确保每个记录都在一行中,所以:
<Record>
<name>adam</name>
<telephoneno>000</telephonenumber>
</Record>
<Record>
<name>mike</name>
<telephoneno>001</telephonenumber>
</Record>
将转换为:
adam 000
mike 001
标题是一个容易的问题,但我如何才能做到这一点?我尝试过数据表和数据集,但我认为它们对实现我想要做的事情没有很好的支持。
这正是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>
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>
我用这个工具测试了它,它有效。
Michael Haren的XSLT响应是最好的答案。
但是,如果您实际上不想将响应作为XML,您可以从web服务返回您想要的任何内容(前提是它是您的,而不是第三方服务)。
没有规定web服务必须返回XML。只要确保提供适当的MIME类型即可。