C#: Как удалить информацию о пространстве имен из элементов XML

Нет, вы передаете содержимое изображения, чтобы создать новый файл с содержимым в виде необработанного пути, это не может работать.

new File.fromRawPath выполняет, в соответствии с документами :

Создает объект File из необработанного пути, то есть последовательность байтов, как представлено ОС.

blockquote>

Что вы хотите сделать, это создать файл и сохранить содержимое в этом файле, это можно сделать так ( Источник ):

var imageFile = File('myimage.jpg');
var sink = imageFile.openWrite();
sink.write(bytes);
await sink.flush();
await sink.close();

10
задан Marc 5 January 2009 в 13:13
поделиться

2 ответа

Предостерегающий ответ Zombiesheep, несмотря на это, мое решение состоит в том, чтобы промыть xml с xslt, преобразовывают, чтобы сделать это.

wash.xsl:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="no" encoding="UTF-8"/>

  <xsl:template match="/|comment()|processing-instruction()">
    <xsl:copy>
      <xsl:apply-templates/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="*">
    <xsl:element name="{local-name()}">
      <xsl:apply-templates select="@*|node()"/>
    </xsl:element>
  </xsl:template>

  <xsl:template match="@*">
    <xsl:attribute name="{local-name()}">
      <xsl:value-of select="."/>
    </xsl:attribute>
  </xsl:template>

</xsl:stylesheet>
10
ответ дан 3 December 2019 в 20:44
поделиться

У меня была аналогичная проблема (мне нужно было удалить атрибут пространства имен из определенного элемента, а затем вернуть XML как XmlDocument в BizTalk), но решение было странным.

Перед загрузкой XML-строки в объект XmlDocument я сделал замену текста, чтобы удалить неправильный атрибут пространства имен. Сначала это казалось неправильным, так как я закончил с XML, который не мог быть проанализирован «XML Visualizer» в Visual Studio. Это то, что изначально оттолкнуло меня от такого подхода.

Тем не менее, текст все еще можно было загрузить в XmlDocument , и я мог нормально вывести его в BizTalk.

Также обратите внимание, что раньше я попал в тупик, пытаясь использовать childNode.Attributes.RemoveAll () для удаления атрибута пространства имен - он просто вернулся!

2
ответ дан 3 December 2019 в 20:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: