특성은 요소와 연결된 이름-값 쌍입니다. 클래스는 XAttribute XML 특성을 나타냅니다.
LINQ to XML에서 특성을 사용하는 것은 요소 작업과 비슷합니다. 해당 생성자는 비슷합니다. 컬렉션을 검색하는 데 사용하는 메서드는 비슷합니다. 특성 컬렉션에 대한 LINQ 쿼리 식은 요소 컬렉션에 대한 LINQ 쿼리 식과 유사합니다.
특성이 요소에 추가된 순서는 유지됩니다. 즉, 특성을 반복하면 특성이 추가된 순서와 동일한 순서로 표시됩니다.
XAttribute 생성자
클래스의 XAttribute 다음 생성자는 가장 일반적으로 사용하는 생성자입니다.
| 생성자 | 설명 |
|---|---|
XAttribute(XName name, object content) |
개체를 XAttribute 만듭니다. 인수는 name 특성 content 의 이름을 지정하고 특성의 내용을 지정합니다. |
예: 특성을 사용하여 요소 만들기
다음 예제에서는 특성을 포함하는 요소를 만드는 일반적인 작업을 보여 줍니다.
XElement phone = new XElement("Phone",
new XAttribute("Type", "Home"),
"555-555-5555");
Console.WriteLine(phone);
Dim phone As XElement = <Phone Type="Home">555-555-5555</Phone>
Console.WriteLine(phone)
이 예제는 다음과 같은 출력을 생성합니다.
<Phone Type="Home">555-555-5555</Phone>
예: 특성의 기능 생성
XAttribute 개체의 생성과 함께 XElement 개체를 인라인으로 생성할 수 있습니다, 다음 예제를 참조하십시오.
XElement c = new XElement("Customers",
new XElement("Customer",
new XElement("Name", "John Doe"),
new XElement("PhoneNumbers",
new XElement("Phone",
new XAttribute("type", "home"),
"555-555-5555"),
new XElement("Phone",
new XAttribute("type", "work"),
"666-666-6666")
)
)
);
Console.WriteLine(c);
Dim c As XElement = _
<Customers>
<Customer>
<Name>John Doe</Name>
<PhoneNumbers>
<Phone type="home">555-555-5555</Phone>
<Phone type="work">666-666-6666</Phone>
</PhoneNumbers>
</Customer>
</Customers>
Console.WriteLine(c)
이 예제는 다음과 같은 출력을 생성합니다.
<Customers>
<Customer>
<Name>John Doe</Name>
<PhoneNumbers>
<Phone type="home">555-555-5555</Phone>
<Phone type="work">666-666-6666</Phone>
</PhoneNumbers>
</Customer>
</Customers>
특성이 노드가 아닙니다.
특성과 요소 간에는 몇 가지 차이점이 있습니다. XAttribute 개체는 XML 트리의 노드가 아닙니다. XML 요소와 연결된 이름-값 쌍입니다. DOM(문서 개체 모델)은 달리 XML의 구조를 더 자세히 반영합니다. 개체가 실제로 XML 트리의 노드는 아니지만, XAttribute 개체를 사용하는 것이 다른 개체를 사용하는 것과 유사합니다.
이러한 구분은 주로 노드 수준에서 XML 트리로 작동하는 코드를 작성하는 개발자에게만 중요합니다. 많은 개발자는 이러한 차이점에 대해 신경 쓰지 않습니다.
참고하십시오
.NET