2012-06-19 6 views
1

자식 요소에 텍스트 값이없는 경우 XPath는 아무 것도 반환하지 않습니다. 이 경우 등급에는 데이터가 없으므로이를 말하고 싶습니다.이 아이는 무시하거나 무시하지 않습니다. 귀하의 의견은 높이 평가됩니다.데이터가 없으면 XPath에서 '없음'을 반환합니다.

XML :

<?xml version="1.0" encoding="ISO-8859-1"?> 

<bookstore> 

<book> 
    <title lang="eng">Harry Potter</title> 
    <price>29.99</price> 
    <rating></rating> 
</book> 

<book> 
    <title lang="hindi">Learning XML</title> 
    <price>39.95</price> 
    <rating></rating> 
</book> 

</bookstore> 

파이썬 :

>>> import lxml.html as lh 
>>> bk=open('book.xml','r') 
>>> bkout=lh.parse(bk) 
>>> bk.close() 
>>> bkout.xpath('//book/*/text()') 
['Harry Potter', '29.99', 'Learning XML', '39.95'] 

>>> bkout.xpath('//book/* and not(text())/text()') 
True 

원하는 출력 :

['Harry Potter', '29.99', '', 'Learning XML', '39.95', ''] 
or 
['Harry Potter', '29.99', None, 'Learning XML', '39.95', None] 

답변

4

은 ") (텍스트"를 제거 :

In [16]: [x.text for x in bk.xpath("//book/*")] 
Out[16]: ['Harry Potter', '29.99', None, 'Learning XML', '39.95', None] 
+0

고마워요! 그것은 효과가 있었다. for 루프 대신 XPath에서 직접 찾고 있었지만 그렇지 않을 수도 있습니다. 나는 그것을하는이 방법에 충실 할 것이다. – ThinkCode

+0

태그 또는 속성이있는 다른 태그와 함께 작동하지 않는 것 같습니다. 예를 들어, Hello ==> bk.xpath (""// book/span [@ class = "brightred"]/*)]의 x에 대한 x.text. 여러 개의 span 태그가있는 경우 작동하지 않습니다. questin을 수정하거나 새로운 질문을 열어 볼까요? 중복을 피하고 싶습니다! 고맙습니다! – ThinkCode

+1

xpath 끝에 "/ *"을 제거해야한다고 생각합니다. 6 월 19 일 준 답을 통해 , <price> 및 <rating>과 일치합니다. 여기에 <span> 안에있는 어떤 태그와도 일치 시키려고하지만 그 중 아무 것도 없습니다. 내부에 텍스트 노드가있어 *와 일치하지 않습니다. – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/1020625/">AlbertFerras</a></span> <span></span> </small> </span> </p> </div> </div> </div> </div> </div> </article> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="4319274062" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> </div> <div class="clearfix"> </div> <div class="relative-box"> <div class="relative">관련 문제</div> <ul class="relative_list"> <li> 1. <a href="http://ko.voidcc.com/question/p-cxzvfues-ek.html" target="_blank" title="android - geocoder.getfromlocationname가 서비스를 사용할 수 없음을 반환합니다."> android - geocoder.getfromlocationname가 서비스를 사용할 수 없음을 반환합니다. </a> </li> <li> 2. <a href="http://ko.voidcc.com/question/p-ekrycvig-ko.html" target="_blank" title="정규식 일치는 없음을 반환합니다. 내가 어디서 잘못한거야?"> 정규식 일치는 없음을 반환합니다. 내가 어디서 잘못한거야? </a> </li> <li> 3. <a href="http://ko.voidcc.com/question/p-kkpiykum-cv.html" target="_blank" title="제자리에 정렬 빈 목록에 없음을 반환합니다."> 제자리에 정렬 빈 목록에 없음을 반환합니다. </a> </li> <li> 4. <a href="http://ko.voidcc.com/question/p-phbpeztd-ho.html" target="_blank" title="Google Checkout에서 상품을 사용할 수 없음을 반환합니다."> Google Checkout에서 상품을 사용할 수 없음을 반환합니다. </a> </li> <li> 5. <a href="http://ko.voidcc.com/question/p-hlvhhgzk-dq.html" target="_blank" title="데이터가 없으면 (SQL Server 데이터베이스에서) 무엇을 저장해야합니까?"> 데이터가 없으면 (SQL Server 데이터베이스에서) 무엇을 저장해야합니까? </a> </li> <li> 6. <a href="http://ko.voidcc.com/question/p-rfljpkhg-km.html" target="_blank" title="데이터가 없으면 빈 파일을 만들지 마십시오"> 데이터가 없으면 빈 파일을 만들지 마십시오 </a> </li> <li> 7. <a href="http://ko.voidcc.com/question/p-ryteebpg-cc.html" target="_blank" title="DataGridview에 데이터가 없으면 가로 스크롤 막대를 제거하십시오."> DataGridview에 데이터가 없으면 가로 스크롤 막대를 제거하십시오. </a> </li> <li> 8. <a href="http://ko.voidcc.com/question/p-hbdwvjjv-gw.html" target="_blank" title="입력 태그에 이름이 없으면 양식 데이터가 전송됩니까?"> 입력 태그에 이름이 없으면 양식 데이터가 전송됩니까? </a> </li> <li> 9. <a href="http://ko.voidcc.com/question/p-kpnjmszo-hs.html" target="_blank" title="레코드를 찾을 수 없으면 0을 반환합니다."> 레코드를 찾을 수 없으면 0을 반환합니다. </a> </li> <li> 10. <a href="http://ko.voidcc.com/question/p-flggpspo-kg.html" target="_blank" title="XPath에서 더 긴 노드"> XPath에서 더 긴 노드 </a> </li> <li> 11. <a href="http://ko.voidcc.com/question/p-fvxwiaae-w.html" target="_blank" title="MidiSystem.getSequencer()가 오디오 장치를 사용할 수 없음을 반환합니다."> MidiSystem.getSequencer()가 오디오 장치를 사용할 수 없음을 반환합니다. </a> </li> <li> 12. <a href="http://ko.voidcc.com/question/p-dylhjviu-bh.html" target="_blank" title="WebClient.DownloadData가 404 파일을 찾을 수 없음을 반환합니다. 이 원인은 무엇입니까?"> WebClient.DownloadData가 404 파일을 찾을 수 없음을 반환합니다. 이 원인은 무엇입니까? </a> </li> <li> 13. <a href="http://ko.voidcc.com/question/p-mixobjja-gh.html" target="_blank" title="클릭이 그리드 요소에 없음을 확인하십시오."> 클릭이 그리드 요소에 없음을 확인하십시오. </a> </li> <li> 14. <a href="http://ko.voidcc.com/question/p-dlqmldjp-by.html" target="_blank" title="프로그램에 알려주기 저장 데이터가 없으면 수행 할 작업 NSUserDefaults, iPhone"> 프로그램에 알려주기 저장 데이터가 없으면 수행 할 작업 NSUserDefaults, iPhone </a> </li> <li> 15. <a href="http://ko.voidcc.com/question/p-tzlfmqvn-gd.html" target="_blank" title="SSRS - 데이터 소스에 데이터가 없으면 빈 페이지가 표시됩니까?"> SSRS - 데이터 소스에 데이터가 없으면 빈 페이지가 표시됩니까? </a> </li> <li> 16. <a href="http://ko.voidcc.com/question/p-vlwolxth-bk.html" target="_blank" title="SQL Server Stored Proc - 데이터가 없으면 변수로 무엇이 반환됩니까?"> SQL Server Stored Proc - 데이터가 없으면 변수로 무엇이 반환됩니까? </a> </li> <li> 17. <a href="http://ko.voidcc.com/question/p-tzxswuth-gw.html" target="_blank" title="잘못된 Json 데이터가 페이지 내용을 반환합니다."> 잘못된 Json 데이터가 페이지 내용을 반환합니다. </a> </li> <li> 18. <a href="http://ko.voidcc.com/question/p-njexlmmw-e.html" target="_blank" title="SingleOrDefault 쿼리는 데이터가 있더라도 null을 반환합니다."> SingleOrDefault 쿼리는 데이터가 있더라도 null을 반환합니다. </a> </li> <li> 19. <a href="http://ko.voidcc.com/question/p-wyyemgej-dx.html" target="_blank" title="String.indexOf는 문자열에 검색 문자열이 없으면 음수가 아닌 인덱스를 반환합니다."> String.indexOf는 문자열에 검색 문자열이 없으면 음수가 아닌 인덱스를 반환합니다. </a> </li> <li> 20. <a href="http://ko.voidcc.com/question/p-dtlpwias-en.html" target="_blank" title="xpath에서 대시를 사용하면 py-dom-xpath에서 작동하지 않습니다."> xpath에서 대시를 사용하면 py-dom-xpath에서 작동하지 않습니다. </a> </li> <li> 21. <a href="http://ko.voidcc.com/question/p-ubipzkik-hv.html" target="_blank" title="xpath에서 유니온 연산자 설정"> xpath에서 유니온 연산자 설정 </a> </li> <li> 22. <a href="http://ko.voidcc.com/question/p-bgnziphy-w.html" target="_blank" title="XPath에서 값을 결합하는 방법"> XPath에서 값을 결합하는 방법 </a> </li> <li> 23. <a href="http://ko.voidcc.com/question/p-kiiqzvqw-ec.html" target="_blank" title="HtmlAgilityPack, Xpath에서 술어 사용"> HtmlAgilityPack, Xpath에서 술어 사용 </a> </li> <li> 24. <a href="http://ko.voidcc.com/question/p-znoghizs-ds.html" target="_blank" title="XSLT XPath에서 '/ ..'표기법 사용"> XSLT XPath에서 '/ ..'표기법 사용 </a> </li> <li> 25. <a href="http://ko.voidcc.com/question/p-bunjzulz-gp.html" target="_blank" title="xPath에서 대소 문자가 구분됩니다."> xPath에서 대소 문자가 구분됩니다. </a> </li> <li> 26. <a href="http://ko.voidcc.com/question/p-oobiaftc-ct.html" target="_blank" title="cancelPreviousPerformRequest가 없으면?"> cancelPreviousPerformRequest가 없으면? </a> </li> <li> 27. <a href="http://ko.voidcc.com/question/p-ryrgllov-c.html" target="_blank" title="경우에 따라 기존 key_name을 사용하는 App Engine "get_by_key_name"호출이 없음을 반환합니다."> 경우에 따라 기존 key_name을 사용하는 App Engine "get_by_key_name"호출이 없음을 반환합니다. </a> </li> <li> 28. <a href="http://ko.voidcc.com/question/p-visqmfei-ea.html" target="_blank" title="php xpath에서 배열을 얻는 방법?"> php xpath에서 배열을 얻는 방법? </a> </li> <li> 29. <a href="http://ko.voidcc.com/question/p-dnirbsab-t.html" target="_blank" title="XPath : xpath에서 어떻게 소문자 통화를합니까?"> XPath : xpath에서 어떻게 소문자 통화를합니까? </a> </li> <li> 30. <a href="http://ko.voidcc.com/question/p-sadsthce-ht.html" target="_blank" title="XPath에서 중첩 노드를 무시하도록하려면 어떻게해야합니까?"> XPath에서 중첩 노드를 무시하도록하려면 어떻게해야합니까? </a> </li> </ul> </div> <div> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3534119089"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="padding-top-10"></div> </div> </div> <script type="text/javascript" src="http://img2.voidcc.com/voidso/script/side.js?t=1652515422614"></script> <script type="text/javascript" src="http://img2.voidcc.com/voidso/plugin/highlight/highlight.pack.js"></script> <link href="http://img2.voidcc.com/voidso/plugin/highlight/styles/docco.css" media="screen" rel="stylesheet" type="text/css" /> <script type="text/javascript"> $('pre').each(function(i, e) { hljs.highlightBlock(e, "<span class='indent'> </span>", false) }); </script> <div class="col-lg-3 col-md-4 col-sm-5"> <div id="rightTop"> <div class="row"> <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- VOIDCC问答侧边栏广告 --> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="3862022848" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="row sidebar panel panel-default"> <div class="panel-heading font-bold"> 최근 질문 </div> <div class="m-b-sm m-t-sm clearfix"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://ko.voidcc.com/question/p-vtouoikr-vx.html" target="_blank" title="H2 계산 된 열을 사용하여 행의 use-count 열을 자동으로 유지"> H2 계산 된 열을 사용하여 행의 use-count 열을 자동으로 유지 </a> </li> <li class="side_article_list_item"> 2. <a href="http://ko.voidcc.com/question/p-bcvpypdt-wh.html" target="_blank" title="PHP 코드에서 col-md-4 divs가 서로 나란히 있지 않고 아래에 표시됩니다."> PHP 코드에서 col-md-4 divs가 서로 나란히 있지 않고 아래에 표시됩니다. </a> </li> <li class="side_article_list_item"> 3. <a href="http://ko.voidcc.com/question/p-fubpeihs-wa.html" target="_blank" title="JSP Javascript는 foreach JSTL의 숨겨진 입력에서 ID를 가져옵니다."> JSP Javascript는 foreach JSTL의 숨겨진 입력에서 ID를 가져옵니다. </a> </li> <li class="side_article_list_item"> 4. <a href="http://ko.voidcc.com/question/p-wkmghill-vz.html" target="_blank" title="복잡한 wsdl을 사용하기위한 배열 구성 - PHP"> 복잡한 wsdl을 사용하기위한 배열 구성 - PHP </a> </li> <li class="side_article_list_item"> 5. <a href="http://ko.voidcc.com/question/p-fovmxunp-vu.html" target="_blank" title="기본 SSL 재 라우팅 HTTP 추가 기능"> 기본 SSL 재 라우팅 HTTP 추가 기능 </a> </li> <li class="side_article_list_item"> 6. <a href="http://ko.voidcc.com/question/p-rpjmfpys-yw.html" target="_blank" title="다른 장치 크기의 CSS"> 다른 장치 크기의 CSS </a> </li> <li class="side_article_list_item"> 7. <a href="http://ko.voidcc.com/question/p-slqgagey-yh.html" target="_blank" title="SFML이 Windows의 CLion에서 작동하지 않습니다."> SFML이 Windows의 CLion에서 작동하지 않습니다. </a> </li> <li class="side_article_list_item"> 8. <a href="http://ko.voidcc.com/question/p-akzyncze-yn.html" target="_blank" title="nuspec 파일을 저장소에 게시해야합니까?"> nuspec 파일을 저장소에 게시해야합니까? </a> </li> <li class="side_article_list_item"> 9. <a href="http://ko.voidcc.com/question/p-rignrqvp-yp.html" target="_blank" title="GUI가있는 Pythonista 프로젝트를 iPhone에서 실행 파일로 만들고 실행할 수 있습니까?"> GUI가있는 Pythonista 프로젝트를 iPhone에서 실행 파일로 만들고 실행할 수 있습니까? </a> </li> <li class="side_article_list_item"> 10. <a href="http://ko.voidcc.com/question/p-xdtrnwsm-yy.html" target="_blank" title="은 읽을 수 날짜에 유닉스 타임 스탬프 문자열 변환에 갇혀로 곧</strong> 가능한 읽을 수있는 날짜 형식 <strong>로 변환하려고"> 은 읽을 수 날짜에 유닉스 타임 스탬프 문자열 변환에 갇혀로 곧</strong> 가능한 읽을 수있는 날짜 형식 <strong>로 변환하려고 </a> </li> </ul> </div> </div> </div> <p class="article-nav-bar"></p> <div class="row sidebar article-nav"> <div class="row box_white visible-sm visible-md visible-lg margin-zero"> <div class="top"> <h3 class="title"><i class="glyphicon glyphicon-th-list"></i> 관련 문제</h3> </div> <div class="article-relative-content"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://ko.voidcc.com/question/p-cxzvfues-ek.html" target="_blank" title="android - geocoder.getfromlocationname가 서비스를 사용할 수 없음을 반환합니다."> android - geocoder.getfromlocationname가 서비스를 사용할 수 없음을 반환합니다. </a> </li> <li class="side_article_list_item"> 2. <a href="http://ko.voidcc.com/question/p-ekrycvig-ko.html" target="_blank" title="정규식 일치는 없음을 반환합니다. 내가 어디서 잘못한거야?"> 정규식 일치는 없음을 반환합니다. 내가 어디서 잘못한거야? </a> </li> <li class="side_article_list_item"> 3. <a href="http://ko.voidcc.com/question/p-kkpiykum-cv.html" target="_blank" title="제자리에 정렬 빈 목록에 없음을 반환합니다."> 제자리에 정렬 빈 목록에 없음을 반환합니다. </a> </li> <li class="side_article_list_item"> 4. <a href="http://ko.voidcc.com/question/p-phbpeztd-ho.html" target="_blank" title="Google Checkout에서 상품을 사용할 수 없음을 반환합니다."> Google Checkout에서 상품을 사용할 수 없음을 반환합니다. </a> </li> <li class="side_article_list_item"> 5. <a href="http://ko.voidcc.com/question/p-hlvhhgzk-dq.html" target="_blank" title="데이터가 없으면 (SQL Server 데이터베이스에서) 무엇을 저장해야합니까?"> 데이터가 없으면 (SQL Server 데이터베이스에서) 무엇을 저장해야합니까? </a> </li> <li class="side_article_list_item"> 6. <a href="http://ko.voidcc.com/question/p-rfljpkhg-km.html" target="_blank" title="데이터가 없으면 빈 파일을 만들지 마십시오"> 데이터가 없으면 빈 파일을 만들지 마십시오 </a> </li> <li class="side_article_list_item"> 7. <a href="http://ko.voidcc.com/question/p-ryteebpg-cc.html" target="_blank" title="DataGridview에 데이터가 없으면 가로 스크롤 막대를 제거하십시오."> DataGridview에 데이터가 없으면 가로 스크롤 막대를 제거하십시오. </a> </li> <li class="side_article_list_item"> 8. <a href="http://ko.voidcc.com/question/p-hbdwvjjv-gw.html" target="_blank" title="입력 태그에 이름이 없으면 양식 데이터가 전송됩니까?"> 입력 태그에 이름이 없으면 양식 데이터가 전송됩니까? </a> </li> <li class="side_article_list_item"> 9. <a href="http://ko.voidcc.com/question/p-kpnjmszo-hs.html" target="_blank" title="레코드를 찾을 수 없으면 0을 반환합니다."> 레코드를 찾을 수 없으면 0을 반환합니다. </a> </li> <li class="side_article_list_item"> 10. <a href="http://ko.voidcc.com/question/p-flggpspo-kg.html" target="_blank" title="XPath에서 더 긴 노드"> XPath에서 더 긴 노드 </a> </li> </ul> </div> </div> </div> </div> </div> </div> </div><!-- wrap end--> <!-- footer --> <footer id="footer"> <div class="bg-simple lt"> <div class="container"> <div class="row padder-v m-t"> <div class="col-xs-8"> <ul class="list-inline"> <li><a href="http://ko.voidcc.com/contact">문의하기</a></li> <li>© 2020 KO.VOIDCC.COM</li> <li><a rel="nofollow" href="https://beian.miit.gov.cn/" target="_blank">沪ICP备13005482号-13</a></li> <li><script type="text/javascript" src="https://s9.cnzz.com/z_stat.php?id=1280098168&web_id=1280098168"></script></li> <li><a href="http://cn.voidcc.com/" target="_blank" title="程序问答园区">简体中文</a></li> <li><a href="http://hk.voidcc.com/" target="_blank" title="程序問答園區">繁體中文</a></li> <li><a href="http://ru.voidcc.com/" target="_blank" title="поле вопросов и ответов">Русский</a></li> <li><a href="http://de.voidcc.com/" target="_blank" title="Frage - und - antwort - Park">Deutsch</a></li> <li><a href="http://es.voidcc.com/" target="_blank" title="Preguntas y respuestas">Español</a></li> <li><a href="http://hi.voidcc.com/" target="_blank" title="कार्यक्रम प्रश्न और उत्तर पार्क">हिन्दी</a></li> <li><a href="http://it.voidcc.com/" target="_blank" title="IL Programma di chiedere Park">Italiano</a></li> <li><a href="http://ja.voidcc.com/" target="_blank" title="プログラム問答園区">日本語</a></li> <li><a href="http://ko.voidcc.com/" target="_blank" title="프로그램 문답 단지">한국어</a></li> <li><a href="http://pl.voidcc.com/" target="_blank" title="program o park">Polski</a></li> <li><a href="http://tr.voidcc.com/" target="_blank" title="Program soru ve cevap parkı">Türkçe</a></li> <li><a href="http://vi.voidcc.com/" target="_blank" title="Đáp ứng viên">Tiếng Việt</a></li> <li><a href="http://fr.voidcc.com/" target="_blank" title="Programme interrogation Park">Française</a></li> </ul> </div> </div> </div> </div> </div> </footer> <!-- / footer --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-77509369-5"></script> <script> window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', 'UA-77509369-5'); </script> <script> var _hmt = _hmt || []; (function () { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?67d4731349f0b00136755b80364ce381"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>