Я делаю запрос к веб-службе xml и получаю ответ. Этот ответ, являющийся потоком, затем сохраняется в строке. Проблема в том, что ответ заполнен тегами, 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>
Я тестировал его с этот инструмент, и он работает.
Ответ Майкла Харена XSLT - лучший ответ.
Но в качестве альтернативы, если вы на самом деле не хотите ответа в виде XML, вы можете вернуть все, что вы ДЕЙСТВИТЕЛЬНО хотите, от веб-службы (при условии, что это ваша, а не сторонняя служба).
Нет правила, согласно которому веб-служба должна возвращать XML. Просто убедитесь, что вы обслуживаете соответствующий MIME-тип.
Обычно, если преобразование генерирует текст, вы должны установить для метода xsl: output значение «text». Это ничего не изменит в этом конкретном преобразовании (хотя с некоторыми). Но я видел инструменты XML, которые проверяют метод, чтобы узнать, должны ли они проверять вывод на правильность, что вам здесь не нужно.