AKTUALNOŚCI

nowości, informacje, szkolenia

c# xpath 예제

2/08/2019

위의 코드에서 모든 가격 요소를 선택 하려면 „/카탈로그/cd/가격”을 사용 했습니다. 가격이 10.0보다 큰 모든 CD 요소를 선택하려면 „/카탈로그/cd[price>10.0]”를 사용할 수 있습니다. 다음은 XPath 표현식의 몇 가지 예입니다: XPath는 경로와 같은 표기법의 사용입니다. 예를 들어 경로/XML 문서의 루트를 식별 하 고 /BooksList 루트 요소를 식별 합니다. 경로 /BooksList/Book은 내의 모든 요소를 선택합니다. 마지막으로 마침표(.)는 항상 현재 노드를 선택합니다. 또한 경로 //는 노드의 모든 하위 항목을 검색하는 재귀 경로 연산자입니다. // 문자로 패스를 시작하면 XPath 표현식이 전체 문서에서 노드를 검색합니다. XPath 표준은 관심있는 노드만 필터링 할 수있는 특별한 선택 기준을 정의하지만 이러한 재료는 많은 기본 템플릿을 작성하기에 충분합니다.

다음 표에서는 XPath 문자에 대한 메서드 개요를 제공합니다. 위의 예제에서 응용 프로그램에서 사용할 XPath를 넣을 때 이것이 명백해지기 때문에 컨텍스트의 중요성을 이해할 수 있기를 바랍니다. 다음은 이 항목의 예제에서 입력 파일로 사용되는 bookstore.xml 파일입니다. XML을 보면 요소의 자식 요소로 요소가 있음을 알 수 있으며, 이 요소는 요소의 자식 요소인 루트입니다. 이 쿼리는 XPath에서 다음과 같이 설명할 수 있습니다: XPath를 사용할 때 기억해야 할 첫 번째 중요한 사항은 식을 사용할 때 의 컨텍스트입니다. 예를 들어 책의 제목을 선택하는 동안 /book 식을 사용하는 경우 실제로 이미 있는 책 노드 내에서 책 노드를 찾고 있었을 것입니다. 이를 위해 XML 문서는 다음과 같이 표시해야 했습니다: 다음 예제에서는 SelectNodes() 메서드를 사용하여 RSS 피드의 모든 항목 노드를 찾은 다음 해당 노드에 대한 정보를 인쇄합니다. 큐멘트 요소입니다. XPath 쿼리의 시작점을 설정하면 XPath 쿼리의 시작점인 컨텍스트 노드가 설정됩니다.</p> <p>문서 요소에서 시작하지 않고 문서 요소의 첫 번째 자식에서 시작하려는 경우 다음과 같이 select 문을 코딩할 수 있습니다. 다음은 이 작업을 수행하는 방법에 대한 몇 가지 예입니다. 예제가 매우 간단했기 때문에 ChildNodes 속성에 대한 호출 범위를 사용하여 이 방법을 사용했습니다. 하지만 코드의 가독성에 대해서는 별로 좋지 않았으므로 이 장에서는 확실히 더 강력하고 읽기 쉽고 유지 관리가 쉬운 다른 접근 방식을 살펴보겠습니다. 이를 위해 사용할 기술을 XPath라고 하며 XML 표준을 만든 동일한 조직에서 유지 관리합니다. XPath는 실제로 많은 가능성이있는 전체 쿼리 언어이지만 XPath 자습서가 아니므로 몇 가지 기본 쿼리만 살펴보겠습니다. 그러나 가장 간단한 형태로도 XPath는 다음 예제에서 볼 수 있듯이 여전히 강력합니다. 다음 예제에서는 SelectNodes 메서드를 사용하여 가격이 지정된 금액보다 큰 모든 책 노드를 선택합니다. 선택한 목록의 각 책의 가격은 프로그래밍 방식으로 10% 감소합니다.</p> <p>마지막으로 업데이트된 파일이 콘솔에 기록됩니다. bookstore.xml 파일(이 항목의 끝에 제공)은 입력 파일로 사용됩니다. 위의 코드를 컴파일하려면 코드 파일 맨 위에 있는 System.Xml 네임스페이스를 참조해야 합니다. 이 예제에서는 프로젝트의 출력 디렉토리에 „Data.xml”이라는 파일이 있다고 가정합니다. 이 작업을 수행하는 가장 쉬운 방법은 프로젝트에 새 XML 파일을 추가하고 위의 XML 데이터를 파일에 삽입하고 Data.xml 파일의 이름을 지정하는 것입니다. </p> </div> </div> <div class="navigation"> <div class="alignleft"> </div> <div class="alignright"> </div> </div> </div> </div> <div class="sidebar"> <div class="sidebar-header"> <ul class="widget-list"> <li id="search-2" class="widget widget_search"><form role="search" method="get" id="searchform" class="searchform" action="http://mitura.academy/"> <div> <input type="text" placeholder="szukaj na stronie..." value="" name="s" id="s" /> </div> </form></li> <li id="text-2" class="widget widget_text"> <div class="textwidget"><h3>Mitura Academy</h3> <h4>Znajdziemy rozwiązanie</h4> <div class="company-info"> <p>Mitura Academy</p> <p>03-523 Warszawa</p> <p>Pińska 25</p> <p><a href="tel:+48224688257">+48 22 468 82 57</a></p> <p><a href="mailto:biuro@mitura.academy">biuro@mitura.academy</a></p> </div></div> </li> </ul> </div> </div> </div> </div> </div> <script type='text/javascript'> /* <![CDATA[ */ var wpcf7 = {"apiSettings":{"root":"http:\/\/mitura.academy\/wp-json\/contact-form-7\/v1","namespace":"contact-form-7\/v1"}}; /* ]]> */ </script> <script type='text/javascript' src='http://mitura.academy/wp-content/plugins/contact-form-7/includes/js/scripts.js?ver=5.1.1'></script> <script type='text/javascript' src='http://mitura.academy/wp-includes/js/wp-embed.min.js?ver=5.0.4'></script> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-71681475-1', 'auto'); ga('send', 'pageview'); </script> </body> </html>