다음을 통해 공유


XObject.BaseUri 속성

정의

XObject의 기본 URI를 가져옵니다.

public:
 property System::String ^ BaseUri { System::String ^ get(); };
public string BaseUri { get; }
member this.BaseUri : string
Public ReadOnly Property BaseUri As String

속성 값

String

String의 기본 URI가 들어 있는 XObject입니다.

예제

다음 예제에서는 파일을 로드할 때 기본 URI 및 줄 정보를 로드합니다. 그런 다음 기본 URI 및 줄 정보를 인쇄합니다.

이 예제에서는 XML 문서로을 사용합니다. 샘플 XML 파일: 일반적인 구매 주문(LINQ to XML)에서 설명하는 것과 같은 일반적인 XML 구매 주문이 있을 수 있습니다.

XElement po = XElement.Load("PurchaseOrder.xml",  
    LoadOptions.SetBaseUri | LoadOptions.SetLineInfo);  
string[] splitUri = po.BaseUri.Split('/');  
Console.WriteLine("BaseUri: {0}", splitUri[splitUri.Length - 1]);  
Console.WriteLine();  
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 po.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 po As XElement = XElement.Load("PurchaseOrder.xml", LoadOptions.SetBaseUri Or LoadOptions.SetLineInfo)  
Dim splitUri() As String = po.BaseUri.Split("/"c)  
Console.WriteLine("BaseUri: {0}", splitUri(splitUri.Length - 1))  
Console.WriteLine()  
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 po.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  

이 예제는 다음과 같은 출력을 생성합니다.

BaseUri: PurchaseOrder.xml  

Element Name        Line Position  
------------        ---- --------  
PurchaseOrder       2    2  
  Address           3    4  
    Name            4    6  
    Street          5    6  
    City            6    6  
    State           7    6  
    Zip             8    6  
    Country         9    6  
  Address           11   4  
    Name            12   6  
    Street          13   6  
    City            14   6  
    State           15   6  
    Zip             16   6  
    Country         17   6  
  DeliveryNotes     19   4  
  Items             20   4  
    Item            21   6  
      ProductName   22   8  
      Quantity      23   8  
      USPrice       24   8  
      Comment       25   8  
    Item            27   6  
      ProductName   28   8  
      Quantity      29   8  
      USPrice       30   8  
      ShipDate      31   8  

설명

LINQ to XML 사용하여 여러 가지 방식으로 XML을 역직렬화할 수 있습니다. 문자열에서 구문 분석하거나, 파일에서 로드하거나, 또는 파일에서 TextReader XmlReader읽을 수 있습니다. 이러한 모든 경우에서 LINQ to XML 의 구체적인 서브클래스 중 하나 또는 다른 클래스를 XmlReader사용합니다.

경우에 따라 XmlReader 기본 URI가 있고 그렇지 않은 경우도 있습니다. 예를 들어 파일 XmlReader 에서 로드할 때 기본 URI를 알고 있지만 메서드 호출 Parse 로 인해 만들어진 URI를 XmlReader 읽을 때 기본 URI를 보고할 가능성이 XmlReader 없습니다. XML이 문자열에 있었습니다.

XML을 구문 분석하거나 로드할 때 지정SetBaseUri하면 LINQ to XML 노드를 반환할 때 각 노드에 대한 기본 URI를 XmlReader 요청합니다. 판독기에서 기본 URI가 있는 경우 LINQ to XML LINQ to XML 노드를 사용하여 정보를 저장합니다. 이 속성은 해당 정보를 반환합니다. 기본 XmlReader 에 기본 URI가 없는 경우 이 속성은 빈 문자열을 반환합니다.

XML 트리를 로드할 때 설정 SetBaseUri 하면 구문 분석 속도가 느려집니다.

XML 트리의 기본 URI를 설정할 때 LINQ to XML 트리의 루트에 주석을 배치합니다. 이 속성은 계산된 속성이며 트리를 탐색하여 기본 URI를 찾습니다.

적용 대상

추가 정보