XObject.BaseUri 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
이 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의 기본 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를 찾습니다.