SVG 이미지는 특히 이미지의 확장성과 품질이 중요한 웹에서 널리 사용됩니다. C#을 사용하여 프로그래밍 방식으로 SVG 이미지 요소를 검사, 추출 또는 탐색할 수 있습니다. 자세한 내용은 다음 섹션을 살펴보겠습니다.
C#의 SVG 검사 또는 탐색 - API 설치
Aspose.SVG for .NET API는 SVG 파일의 생성, 편집 또는 변환을 지원합니다. DLL 파일은 다운로드 섹션에서 ZIP으로 다운로드할 수 있습니다. Microsoft Visual Studio의 NuGet 패키지 관리자를 통해 구성할 수도 있습니다. 다음 NuGet 설치 명령을 사용하여 구성할 수 있습니다.
PM> Install-Package Aspose.SVG
SVG 문서 및 해당 요소 검사
.NET API용 Aspose.SVG의 여러 메서드는 W3C에 따른 요소 순회 사양을 기반으로 합니다. 다음 단계에 따라 SVG 파일을 자세히 검사할 수 있습니다.
- 입력 SVG 파일을 로드합니다.
- DocumentElement 개체를 사용하여 다른 요소를 로드합니다.
- 모든 속성의 값에 액세스합니다.
아래 코드는 C#을 사용하여 프로그래밍 방식으로 SVG 문서와 다양한 요소를 검사하는 방법을 설명합니다.
// 문서 로드
string documentPath = Path.Combine(DataDir, "shapes.svg");
using (var document = new SVGDocument(documentPath))
{
var element = document.DocumentElement;
Console.WriteLine(element.TagName); // svg
element = element.LastElementChild;
Console.WriteLine(element.TagName); // g
element = element.FirstElementChild;
Console.WriteLine(element.TagName); // rect
}
특정 SVG 요소에 대한 정보 추출
SVG 이미지 파일은 루트 요소 아래에 여러 요소로 구성됩니다. SVGDocument 클래스는 ParentElement 및 GetElementsByClassName과 같은 특정 SVG 요소에 대한 정보를 추출하는 다양한 메서드를 제공합니다. 특정 SVG 요소에 대한 정보를 추출하려면 아래 단계를 따르십시오.
- 입력 SVG 이미지를 로드합니다.
- DocumentElement 속성에 액세스합니다.
- 특정 요소를 읽습니다.
다음 코드는 C#을 사용하여 프로그래밍 방식으로 특정 SVG 요소에 대한 정보를 추출하는 방법을 보여줍니다.
//파일에서 문서 로드
string documentPath = Path.Combine(DataDir, "shapes.svg");
using (var document = new SVGDocument(documentPath))
{
// 문서의 루트 svg 요소 가져오기
var svg = document.DocumentElement;
// 주어진 태그 이름을 가진 첫 번째 자식 요소 찾기
var g = svg.GetElementsByTagName("g").First() as SVGGElement;
var rect = g.FirstElementChild as SVGRectElement;
Console.WriteLine("Height: {0}", rect.Height);// 90
Console.WriteLine("Width: {0}", rect.Width); // 100
}
이 데모에서는 shapes.svg 파일 작업을 고려했습니다.
XPath 쿼리를 사용하여 SVG 탐색
XPath 쿼리 언어는 XML 기반 문서에서 노드를 선택하는 데 사용됩니다. 다음 단계에서는 XPath 쿼리를 사용하여 SVG 이미지 파일 노드를 탐색하는 방법을 자세히 설명합니다.
- 소스 SVG 파일을 로드합니다.
- 평가하다 XPath expression.
- 평가하고 다음 노드를 가져옵니다.
아래 코드는 이러한 단계를 통해 C# 언어를 사용하여 프로그래밍 방식으로 SVG 노드를 탐색하는 방법을 보여줍니다.
using Aspose.Svg;
using System.IO;
using Aspose.Svg.Dom;
using Aspose.Svg.Collections;
...
using (var document = new SVGDocument(Path.Combine(DataDir, "shapes.svg")))
{
// XPath 표현식 평가
var xpathResult = document.Evaluate("//rect[@x='120']", document, null, (Dom.XPath.XPathResultType)XPathResultType.Any, null);
// 다음 평가된 노드 가져오기
Console.WriteLine((xpathResult.IterateNext() as Element)?.OuterHTML);
}
결론
이 기사에서는 SVG 파일과 해당 요소를 검사하는 방법을 살펴보았습니다. 마찬가지로 SVG 파일에서 정보를 추출하고 XPath 쿼리를 사용하여 SVG 노드를 탐색하는 방법도 설명합니다. 또한 Documentation을 읽으면 더 자세히 알아볼 수 있습니다. 무료 지원 포럼에 자유롭게 문의하세요. 기꺼이 도와드리고 안내해 드리겠습니다!