Удаление тегов из XML-документа, удаление разрывов строк и добавление пользовательских разрывов строк - PullRequest
2 голосов
/ 23 октября 2008

Я делаю запрос к веб-службе xml и получаю ответ. Этот ответ, будучи потоком, затем сохраняется в строку. Проблема в том, что ответ полон тегов, CDATA и т. Д. (Как и следовало ожидать). Как и следовало ожидать, разрыв строки тоже отсутствует.

Я хочу взять эту строку, которая представляет собой документ XML, и удалить из нее все его теги, но сохранить фактические значения, а также убедиться, что каждая запись находится в одной строке, поэтому:

<Record>
  <name>adam</name>
  <telephoneno>000</telephonenumber>
</Record>
<Record>
  <name>mike</name>
  <telephoneno>001</telephonenumber>
</Record>

Будет преобразовано в:

adam 000
mike 001

Заголовки - это простая проблема, но как мне этого добиться? Я пробовал таблицы данных и наборы данных, но я не думаю, что они имеют большую поддержку для достижения того, что я пытаюсь сделать.

Ответы [ 2 ]

7 голосов
/ 23 октября 2008

Это именно то, для чего 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>

Я протестировал его с этим инструментом , и он работает.

0 голосов
/ 23 октября 2008

Ответ Михаэля Харена на XSLT - лучший ответ.

Но в качестве альтернативы, если вы на самом деле не хотите получить ответ в виде XML, вы можете вернуть все, что пожелаете, от веб-службы (при условии, что она ваша, а не сторонняя служба).

Нет правила, согласно которому веб-служба должна возвращать XML. Просто убедитесь, что обслуживаете соответствующий MIME-тип.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...