programing

XML 문자열에서 XML 문서로

jooyons 2023. 10. 2. 14:59
반응형

XML 문자열에서 XML 문서로

문자열에 전체 XML 문서가 있으며, 이 문서에서 XML 문서로 변환하고 태그를 구문 분석해야 합니다.

이 코드 샘플은 Jan Slama가 작성한 csharp-examples.net 에서 가져온 것입니다.

XML 파일에서 노드를 찾으려면 XPath 식을 사용할 수 있습니다.메서드 XmlNode.­tNodes를 선택하면 XPath 문자열로 선택한 노드 목록이 반환됩니다.메서드 XmlNode.­tSingleNode를 선택하여 XPath 문자열과 일치하는 첫 번째 노드를 찾습니다.

XML:

<Names>
    <Name>
        <FirstName>John</FirstName>
        <LastName>Smith</LastName>
    </Name>
    <Name>
        <FirstName>James</FirstName>
        <LastName>White</LastName>
    </Name>
</Names>

코드:

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);
}

링크를 xml에 사용

시스템에 참조를 추가합니다.Xml.Linq

사용.

XDocument.Parse(string xmlString)

편집: 샘플이 다음과 같습니다. xml data(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>

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"));

이 코드는 다음과 같은 출력을 생성합니다: 0002 0006

원하는 문서 유형에 따라 또는 를 사용할 수 있습니다.

다음 코드를 사용해 보십시오.

var myXmlDocument = new XmlDocument();
myXmlDocument.LoadXml(theString);

언급URL : https://stackoverflow.com/questions/6402596/xml-string-to-xml-document

반응형