XObject.BaseUri 속성

정의

XObject의 기본 URI를 가져옵니다.Gets the base URI for this XObject.

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입니다.A String that contains the base URI for this XObject.

예제

다음 예제에서는 파일을 로드할 때 기본 URI 및 줄 정보를 로드 합니다.The following example loads the base URI and line information as it loads the file. 그런 다음 기본 URI와 줄 정보를 인쇄 합니다.It then prints the base URI and the line information.

이 예제에서는 XML 문서로을 사용합니다. 샘플 XML 파일: 일반적인 구매 주문(LINQ to XML)에서 설명하는 것과 같은 일반적인 XML 구매 주문이 있을 수 있습니다.This example uses the following XML document: Sample XML File: Typical Purchase Order (LINQ to 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  

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

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를 사용 하 여 여러 fashions에서 XML을 deserialize 할 수 있습니다.Using LINQ to XML, you can deserialize XML in a number of fashions. 문자열에서 구문을 분석 하거나, 파일에서 로드 하거나, 또는에서 읽을 수 있습니다 TextReader XmlReader .You can parse it from a string, load it from a file, or read it from a TextReader or an XmlReader. 이러한 모든 경우에 LINQ to XML는의 구체적인 서브 클래스 중 하나 또는 다른 클래스를 사용 XmlReader 합니다.In all of these cases, LINQ to XML uses one or another of the concrete subclasses of XmlReader.

XmlReader 기본 URI를 포함 하는 경우도 있고 그렇지 않은 경우도 있습니다.Sometimes the XmlReader has the base URI, and sometimes it does not. 예를 들어 파일에서 로드 하는 경우는 XmlReader 기본 uri를 알고 있지만 메서드를 호출 하 여 만들어진에서 읽을 경우 XmlReader Parse XmlReader 기본 uri를 보고할 가능성이 없습니다. XML이 문자열에 있었습니다.For instance, when loading from a file, the XmlReader knows the base URI, but when reading from an XmlReader that was created because of calling the Parse method, there is no possibility of the XmlReader reporting a base URI; the XML was in a string.

XML을 구문 분석 하거나 로드 하 SetBaseUri 는 경우에서 노드를 반환할 때 각 노드에 대 한 기본 URI를 요청 LINQ to XML에서 지정 합니다 XmlReader .If, when parsing or loading the XML, you specify SetBaseUri, LINQ to XML will request the base URI for each node as the XmlReader returns the node. 판독기에 기본 URI가 있는 경우 LINQ to XML는 LINQ to XML 노드를 사용 하 여 정보를 저장 합니다.If the reader has the base URI, LINQ to XML will save the information with the LINQ to XML node. 이 속성은 해당 정보를 반환 합니다.This property returns that information. 기본 XmlReader URI가 없으면이 속성은 빈 문자열을 반환 합니다.If the underlying XmlReader does not have the base URI, then this property will return an empty string.

SetBaseUriXML 트리를 로드할 때를 설정 하면 구문 분석이 느려집니다.Setting SetBaseUri when loading an XML tree will result in slower parsing.

XML 트리의 기본 URI를 설정 하는 경우 LINQ to XML는 트리의 루트에 주석을 넣습니다.When setting the base URI for an XML tree, LINQ to XML puts an annotation on the root of the tree. 이 속성은 계산 된 속성이 며 트리를 위로 이동 하 여 기본 URI를 찾습니다.This property is a computed property, and navigates up the tree to find the base URI.

적용 대상