c# - remarks - what are two ways you can compile xml tags and documentation into an xml file
Cadena XML a documento XML (4)
Dependiendo del tipo de documento que desee, puede utilizar XmlDocument.LoadXml
o XDocument.Load
.
Tengo un documento XML completo en una cadena que necesito convertir a un documento XML y analizar etiquetas en el documento
Este ejemplo de código está tomado de csharp-examples.net , escrito por Jan Slama :
Para encontrar nodos en un archivo XML puede usar expresiones XPath. El método XmlNode.SelectNodes devuelve una lista de nodos seleccionados por la cadena XPath. El método XmlNode.SelectSingleNode encuentra el primer nodo que coincide con la cadena XPath.
XML:
<Names> <Name> <FirstName>John</FirstName> <LastName>Smith</LastName> </Name> <Name> <FirstName>James</FirstName> <LastName>White</LastName> </Name> </Names>
CÓDIGO:
XmlDocument xml = new XmlDocument(); xml.LoadXml(myXmlString); // suppose that myXmlString contains "<Names>...</Names>" XmlNodeList xnList = xml.SelectNodes("/Names/Name"); foreach (XmlNode xn in xnList) { string firstName = xn["FirstName"].InnerText; string lastName = xn["LastName"].InnerText; Console.WriteLine("Name: {0} {1}", firstName, lastName); }
Prueba esto:
var myXmlDocument = new XmlDocument();
myXmlDocument.Load(theString);
Usando Linq para xml
Agregar una referencia a System.Xml.Linq
y use
XDocument.Parse(string xmlString)
Edición: Sample continuación, datos xml (TestConfig.xml) ..
<?xml version="1.0"?>
<Tests>
<Test TestId="0001" TestType="CMD">
<Name>Convert number to string</Name>
<CommandLine>Examp1.EXE</CommandLine>
<Input>1</Input>
<Output>One</Output>
</Test>
<Test TestId="0002" TestType="CMD">
<Name>Find succeeding characters</Name>
<CommandLine>Examp2.EXE</CommandLine>
<Input>abc</Input>
<Output>def</Output>
</Test>
<Test TestId="0003" TestType="GUI">
<Name>Convert multiple numbers to strings</Name>
<CommandLine>Examp2.EXE /Verbose</CommandLine>
<Input>123</Input>
<Output>One Two Three</Output>
</Test>
<Test TestId="0004" TestType="GUI">
<Name>Find correlated key</Name>
<CommandLine>Examp3.EXE</CommandLine>
<Input>a1</Input>
<Output>b1</Output>
</Test>
<Test TestId="0005" TestType="GUI">
<Name>Count characters</Name>
<CommandLine>FinalExamp.EXE</CommandLine>
<Input>This is a test</Input>
<Output>14</Output>
</Test>
<Test TestId="0006" TestType="GUI">
<Name>Another Test</Name>
<CommandLine>Examp2.EXE</CommandLine>
<Input>Test Input</Input>
<Output>10</Output>
</Test>
</Tests>
Uso de C # ...
XElement root = XElement.Load("TestConfig.xml");
IEnumerable<XElement> tests =
from el in root.Elements("Test")
where (string)el.Element("CommandLine") == "Examp2.EXE"
select el;
foreach (XElement el in tests)
Console.WriteLine((string)el.Attribute("TestId"));
Este código produce la siguiente salida: 0002 0006