Note that there are some explanatory texts on larger screens.

plurals
  1. POXmlWriter - reading an attribute (quick question)
    primarykey
    data
    text
    <p>I'm using this for my code, it outputs to the xml file perfectly, but it adds an ' = ' sign after the element name even though only one of my elements has an attribute. </p> <p>I suppose I could do something like</p> <pre><code>if(reader.Getattribute != "") // I made that up on the spot, I'm not sure if that would really work { Console.WriteLine("&lt;{0} = {1}&gt;", reader.Name, reader.GetAttribute("name")); } else { Console.WriteLine("&lt;{0}&gt;", reader.Name); } </code></pre> <p>but is there a cleaner way to code that?</p> <p>My code (without workaround)</p> <pre><code>using System; using System.Xml; using System.IO; using System.Text; public class MainClass { private static void Main() { XmlWriterSettings settings = new XmlWriterSettings(); settings.Indent = true; XmlWriter w = XmlWriter.Create(@"Path\test.xml", settings); w.WriteStartDocument(); w.WriteStartElement("classes"); w.WriteStartElement("class"); w.WriteAttributeString("name", "EE 999"); w.WriteElementString("Class_Name", "Programming"); w.WriteElementString("Teacher", "James"); w.WriteElementString("Room_Number", "333"); w.WriteElementString("ID", "2324324"); w.WriteEndElement(); w.WriteEndDocument(); w.Flush(); w.Close(); XmlReader reader = XmlReader.Create(@"Path\test.xml"); while (reader.Read()) { switch (reader.NodeType) { case XmlNodeType.Element: Console.WriteLine("&lt;{0} = {1}&gt;", reader.Name, reader.GetAttribute("name")); break; case XmlNodeType.Text: Console.WriteLine(reader.Value); break; case XmlNodeType.CDATA: Console.WriteLine("&lt;[CDATA[{0}]&gt;", reader.Value); break; case XmlNodeType.ProcessingInstruction: Console.WriteLine("&lt;?{0} {1}?&gt;", reader.Name, reader.Value); break; case XmlNodeType.Comment: Console.WriteLine("&lt;!--{0}--&gt;", reader.Value); break; case XmlNodeType.XmlDeclaration: Console.WriteLine("&lt;?xml version='1.0'?&gt;"); break; case XmlNodeType.Document: break; case XmlNodeType.DocumentType: Console.WriteLine("&lt;!DOCTYPE {0} [{1}]", reader.Name, reader.Value); break; case XmlNodeType.EntityReference: Console.WriteLine(reader.Name); break; case XmlNodeType.EndElement: Console.WriteLine("&lt;/{0}&gt;", reader.Name); break; } } } } </code></pre> <p>Output</p> <pre><code>&lt;?xml version='1.0'?&gt; &lt;classes = &gt; &lt;class = EE 999&gt; &lt;Class_Name = &gt; Programming &lt;/Class_Name&gt; &lt;Teacher = &gt; James &lt;/Teacher&gt; &lt;Room_Number = &gt; 333 &lt;/Room_Number&gt; &lt;ID = &gt; 2324324 &lt;/ID&gt; &lt;/class&gt; &lt;/classes&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload