1

以下に、XML を読み取って書き込むサンプル コードを示します。のような短いタグを検出できないため、出力 XML は無効です"<test attrib="123" />。XmlTextReader を使用してそのようなタグを検出する方法はありますか?

       while (reader.Read()){
              switch (reader.NodeType)
                {
                    case XmlNodeType.Element:
                        {
                            writer.WriteStartElement(reader.Name);
                            writer.WriteAttributes(reader, false);
                            break;
                        } 
                    case XmlNodeType.Text:
                        writer.WriteString(reader.Value);
                        break;
                    case XmlNodeType.XmlDeclaration:
                    case XmlNodeType.ProcessingInstruction:
                        writer.WriteProcessingInstruction(reader.Name, reader.Value);
                        break;
                    case XmlNodeType.Comment:
                        writer.WriteComment(reader.Value);
                        break;
                    case XmlNodeType.EndElement:
                        writer.WriteFullEndElement();
                        break;
                }
          }
4

2 に答える 2

2

要素が空かどうかを確認する必要があります。

   case XmlNodeType.Element:
       {                         
           writer.WriteStartElement(reader.Name);
           writer.WriteAttributes(reader, false);
           if (reader.IsEmptyElement) writer.WriteEndElement();
           break;
       } 
于 2011-04-25T23:18:45.717 に答える
1

を探していると思いますXmlTextReader.IsEmptyElement。要素が自己終了要素である場合 (およびその場合にのみ)、true を返します。詳細については、この msdn ページを参照してください。

于 2011-04-25T23:16:35.997 に答える