XElement.Parse XElement.Parse XElement.Parse XElement.Parse Method

정의

XML이 들어 있는 문자열에서 XElement를 로드하고, 선택적으로 공백 및 줄 정보를 유지합니다.Load an XElement from a string that contains XML, optionally preserving white space and retaining line information.

오버로드

Parse(String) Parse(String) Parse(String) Parse(String)

XML이 들어 있는 문자열에서 XElement를 로드합니다.Load an XElement from a string that contains XML.

Parse(String, LoadOptions) Parse(String, LoadOptions) Parse(String, LoadOptions) Parse(String, LoadOptions)

XML이 들어 있는 문자열에서 XElement를 로드하고, 선택적으로 공백 및 줄 정보를 유지합니다.Load an XElement from a string that contains XML, optionally preserving white space and retaining line information.

Parse(String) Parse(String) Parse(String) Parse(String)

XML이 들어 있는 문자열에서 XElement를 로드합니다.Load an XElement from a string that contains XML.

public:
 static System::Xml::Linq::XElement ^ Parse(System::String ^ text);
public static System.Xml.Linq.XElement Parse (string text);
static member Parse : string -> System.Xml.Linq.XElement
Public Shared Function Parse (text As String) As XElement

매개 변수

text
String String String String

XML이 들어 있는 String입니다.A String that contains XML.

반환

XML이 들어 있는 문자열을 사용하여 채운 XElement입니다.An XElement populated from the string that contains XML.

예제

다음 예제에서는 XML이 포함 된 문자열을 만듭니다.The following example creates a string that contains XML. 그런 다음 문자열을 구문 분석을 XElement입니다.It then parses the string into an XElement.

XElement xmlTree = XElement.Parse("<Root> <Child> </Child> </Root>");  
Console.WriteLine(xmlTree);  
Dim xmlTree As XElement = <Root><Child></Child></Root>  
Console.WriteLine(xmlTree)  

이 예제는 다음과 같은 출력을 생성합니다.This example produces the following output:

<Root>  
  <Child></Child>  
</Root>  

설명

이 메서드는 공백을 유지 하지 않습니다.This method does not preserve white space. XML 트리에 대 한 공백을 유지 하려는 경우의 오버 로드를 사용 합니다 Parse 메서드를 LoadOptions 매개 변수로 합니다.If you want to preserve white space in the XML tree, use the overload of the Parse method that takes LoadOptions as a parameter. 자세한 내용은 로드 하거나 XML 구문 분석 하는 동안 공백을 유지 하 고 유지 공백 하는 동안 직렬화합니다.For more information, see Preserving White Space while Loading or Parsing XML and Preserving White Space While Serializing.

XML의 로드 기능에는 LINQ 기반 XmlReader입니다.LINQ to XML's loading functionality is built upon XmlReader. throw 된 예외를 catch 될 수 있습니다 따라서 합니다 XmlReader.Create 메서드 오버 로드 및 XmlReader 읽기 및 문서를 구문 분석 하는 메서드.Therefore, you might catch any exceptions that are thrown by the XmlReader.Create overload methods and the XmlReader methods that read and parse the document.

추가 정보

Parse(String, LoadOptions) Parse(String, LoadOptions) Parse(String, LoadOptions) Parse(String, LoadOptions)

XML이 들어 있는 문자열에서 XElement를 로드하고, 선택적으로 공백 및 줄 정보를 유지합니다.Load an XElement from a string that contains XML, optionally preserving white space and retaining line information.

public:
 static System::Xml::Linq::XElement ^ Parse(System::String ^ text, System::Xml::Linq::LoadOptions options);
public static System.Xml.Linq.XElement Parse (string text, System.Xml.Linq.LoadOptions options);
static member Parse : string * System.Xml.Linq.LoadOptions -> System.Xml.Linq.XElement
Public Shared Function Parse (text As String, options As LoadOptions) As XElement

매개 변수

text
String String String String

XML이 들어 있는 String입니다.A String that contains XML.

options
LoadOptions LoadOptions LoadOptions LoadOptions

기본 URI와 줄 정보의 로드 여부 및 공백 동작을 지정하는 LoadOptions입니다.A LoadOptions that specifies white space behavior, and whether to load base URI and line information.

반환

XML이 들어 있는 문자열을 사용하여 채운 XElement입니다.An XElement populated from the string that contains XML.

예제

다음 예제에서는 문자열을 구문 분석 하는 XElement 두 가지 방법으로: 공백, 및의 공백 보존 되지 않습니다.The following example parses a string into an XElement in two different ways: preserving white space, and not preserving white space. 다음 쿼리를 사용 하 여 결과 XML 트리에서 노드를 공백 수를 결정 합니다.It then uses a query to determine the number of white space nodes in the resulting XML tree.

int whiteSpaceNodes;  
  
XElement xmlTree1 = XElement.Parse("<Root> <Child> </Child> </Root>",  
    LoadOptions.None);  
whiteSpaceNodes = xmlTree1  
    .DescendantNodesAndSelf()  
    .OfType<XText>()  
    .Where(tNode => tNode.ToString().Trim().Length == 0)  
    .Count();  
Console.WriteLine("Count of white space nodes (not preserving whitespace): {0}",  
    whiteSpaceNodes);  
  
XElement xmlTree2 = XElement.Parse("<Root> <Child> </Child> </Root>",  
    LoadOptions.PreserveWhitespace);  
whiteSpaceNodes = xmlTree2  
    .DescendantNodesAndSelf()  
    .OfType<XText>()  
    .Where(tNode => tNode.ToString().Trim().Length == 0)  
    .Count();  
Console.WriteLine("Count of white space nodes (preserving whitespace): {0}",  
    whiteSpaceNodes);  
Dim whiteSpaceNodes As Integer  
  
Dim xmlTree1 As XElement = XElement.Parse("<Root> <Child> </Child> </Root>", LoadOptions.None)  
whiteSpaceNodes = xmlTree1 _  
    .DescendantNodesAndSelf() _  
    .OfType(Of XText)() _  
    .Where(Function(ByVal tNode As XNode) tNode.ToString().Trim().Length = 0) _  
    .Count()  
Console.WriteLine("Count of white space nodes (not preserving whitespace): {0}", whiteSpaceNodes)  
  
Dim xmlTree2 As XElement = XElement.Parse("<Root> <Child> </Child> </Root>", LoadOptions.PreserveWhitespace)  
whiteSpaceNodes = xmlTree2 _  
    .DescendantNodesAndSelf() _  
    .OfType(Of XText)() _  
    .Where(Function(ByVal tNode As XNode) tNode.ToString().Trim().Length = 0) _  
    .Count()  
Console.WriteLine("Count of white space nodes (preserving whitespace): {0}", whiteSpaceNodes)  

이 예제는 다음과 같은 출력을 생성합니다.This example produces the following output:

Count of white space nodes (not preserving whitespace): 0  
Count of white space nodes (preserving whitespace): 3  

다음 예제에서는 문자열 구문 분석 하는 대로 줄 정보를 유지 합니다.The following example retains line information as it parses the string.

string markup =  
@"<Root>  
    <Child>  
        <GrandChild/>  
    </Child>  
</Root>";  
  
XElement xRoot = XElement.Parse(markup, LoadOptions.SetLineInfo);  
Console.WriteLine("{0}{1}{2}",  
    "Element Name".PadRight(20),  
    "Line".PadRight(5),  
    "Position");  
Console.WriteLine("{0}{1}{2}",  
    "------------".PadRight(20),  
    "----".PadRight(5),  
    "--------");  
foreach (XElement e in xRoot.DescendantsAndSelf())  
    Console.WriteLine("{0}{1}{2}",  
        ("".PadRight(e.Ancestors().Count() * 2) + e.Name).PadRight(20),  
        ((IXmlLineInfo)e).LineNumber.ToString().PadRight(5),  
        ((IXmlLineInfo)e).LinePosition);  
Dim markup As String = _  
"<Root>" & Environment.NewLine & _  
"    <Child>" & Environment.NewLine & _  
"        <GrandChild/>" & Environment.NewLine & _  
"    </Child>" & Environment.NewLine & _  
"</Root>"  
  
Dim xRoot As XElement = XElement.Parse(markup, LoadOptions.SetLineInfo)  
Console.WriteLine("{0}{1}{2}", _  
    "Element Name".PadRight(20), _  
    "Line".PadRight(5), _  
    "Position")  
Console.WriteLine("{0}{1}{2}", _  
    "------------".PadRight(20), _  
    "----".PadRight(5), _  
    "--------")  
For Each e As XElement In xRoot.DescendantsAndSelf()  
    Console.WriteLine("{0}{1}{2}", _  
        ("".PadRight(e.Ancestors().Count() * 2) & e.Name.ToString).PadRight(20), _  
        DirectCast(e, IXmlLineInfo).LineNumber.ToString().PadRight(5), _  
        DirectCast(e, IXmlLineInfo).LinePosition)  
Next  

이 예제는 다음과 같은 출력을 생성합니다.This example produces the following output:

Element Name        Line Position  
------------        ---- --------  
Root                1    2  
  Child             2    6  
    GrandChild      3    10  

설명

소스 XML 들여쓰기 없는 경우 설정 합니다 PreserveWhitespace 플래그 options 하면 소스 XML에서에서 모든 공백이 읽을 판독기입니다.If the source XML is indented, setting the PreserveWhitespace flag in options causes the reader to read all white space in the source XML. 노드 형식의 XText 중요 하 고 불필요 한 공백에 대 한 생성 됩니다.Nodes of type XText are created for both significant and insignificant white space.

소스 XML 들여쓰기 없는 경우 설정 하지 않으면 합니다 PreserveWhitespace 플래그 options 하면 판독기의 소스 XML에서에서 불필요 한 공백을 모두 무시 합니다.If the source XML is indented, not setting the PreserveWhitespace flag in options causes the reader to ignore all of the insignificant white space in the source XML. XML 트리에서 무효 공백에 대 한 텍스트 노드 없이 생성 됩니다.The XML tree is created without any text nodes for insignificant white space.

소스 XML 들여쓰기 없는 경우 설정 합니다 PreserveWhitespace 플래그 options 영향을 주지 않습니다.If the source XML is not indented, setting the PreserveWhitespace flag in options has no effect. 유효 공백 문자는 계속 유지 되며 자세한 공백 텍스트 노드가 생성 될 수 있는 불필요 한 공백이 없는 범위.Significant white space is still preserved, and there are no spans of insignificant white space that could cause the creation of more white space text nodes.

자세한 내용은 로드 하거나 XML 구문 분석 하는 동안 공백을 유지 하 고 유지 공백 하는 동안 직렬화합니다.For more information, see Preserving White Space while Loading or Parsing XML and Preserving White Space While Serializing.

설정 SetBaseUri 에서 구문 분석 하는 경우에 영향을 주지 것입니다는 String합니다.Setting SetBaseUri will have no effect when parsing from a String.

XmlReader 여부 유효한 줄 정보가 있을 수 있습니다.The XmlReader may have a valid line information or not. 설정 하는 경우 SetLineInfo, 줄 정보를 설정할 XML 트리의 보고 된 줄 정보를 XmlReader입니다.If you set SetLineInfo, the line information will be set in the XML tree from the line information that is reported by the XmlReader.

설정한 경우 성능 저하가 발생 합니다 SetLineInfo 플래그입니다.There is a performance penalty if you set the SetLineInfo flag.

XML 문서를 로드 한 직후 줄 정보는 정확 하 게 됩니다.The line information is accurate immediately after loading the XML document. 문서를 로드 한 후 XML 트리를 수정 하는 경우 줄 정보가 무의미해 질 수 있습니다.If you modify the XML tree after loading the document, the line information may become meaningless.

XML의 로드 기능에는 LINQ 기반 XmlReader입니다.LINQ to XML's loading functionality is built upon XmlReader. throw 된 예외를 catch 될 수 있습니다 따라서 합니다 XmlReader.Create 메서드 오버 로드 및 XmlReader 읽기 및 문서를 구문 분석 하는 메서드.Therefore, you might catch any exceptions that are thrown by the XmlReader.Create overload methods and the XmlReader methods that read and parse the document.

추가 정보

적용 대상