2011-07-29 5 views
5

태그 외부에서 텍스트를 추출하고 싶습니다. 예를 들어태그 외부에서 텍스트를 추출하는 방법 xml

다른 태그 (p 또는 참조)에 텍스트가없는 경우에만 "This is an example"이라는 텍스트를 얻고 싶습니다. 몇 가지 방법을 시도했지만 작동하지 않습니다. Any1이 도와 줄 수 있습니까? 큰 감사를 드린다.

답변

8

태그 내부의 텍스트를 노드처럼 생각해야합니다. 텍스트 노드는 테스트 노드 text()을 사용하여 검색됩니다. 예. 을 감안할 때 :

<body> 
    This is an exmaple 
    <p> 
    blablabla 
    <\p> 
    <references> 
     refer 1 
     refer 2 
    <\references> 
    another example 
<\body> 

의 XPath :

"/body/text()" 

이, 그리고 "또 다른 예" "이것은 exmaple이다"와 같은, body의 모든 자식 텍스트 노드를 검색 할 뜻이있는 동안 :

"/body/text()[1]" 

합니다 첫 번째 것만 가져 오면 "This is an exmaple"입니다. 이것은 C#을 XMLDocument로 나되는 XMLReader에 의해

"/body/p[1]//text()" 
+0

을 수행 할 수 있습니다 : 당신이 첫번째 페이지 내부의 모든 텍스트 노드를 원하는,

"/body//text()" 

또는 : 당신이 모든 자손 텍스트 노드를 원하는 경우에 당신은 사용할 수 있습니까? 나는 텍스트를 읽고 다른 xml에 텍스트를 써서 색인하려고 노력하고있다. –

+0

SelectNodes 나 SelectSingleNode 같은 메소드를 사용하여 xmldocument에 XPath를 먼저 사용해야 할 수 있습니다 (최소한 1 년 이후로 사용하지 마십시오). –

2

XPath : /body/text()을 사용하십시오. This is an exmaple을 선택합니다.

관련 문제