2012-04-16 5 views
0

PHP (DOM)를 사용하여 실제 네스트 태그 대신 네스트 태그를 문자열로 가져 오는 방법은 무엇입니까?</p> <pre><code>some text some text &lt;nested-node&gt;nest node content &lt;/nested-node&gt; some text </code></pre> <p>내가 이것을 달성 할 수있는 방법 제발 도와주세요 ...

<data> 
<node1> 
     some text some text <nested-node>nest node content</nested-node> some text 
</node1> 
</data> 

이 (내가 할 수있는) <node1> 태그를 액세스 할 XML을 고려,하지만 난 다음과 같은 콘텐츠를 원하는 ???

+0

아마도 처음에는 Google을 사용해야하며이 연습 문제를 해결하려면 여기에 글을 쓸 수 있습니다. 해결책 : XML을 읽고 html 이스케이프를 만듭니다. – Stony

+0

그게 내가하는 일이야? – Shahid

답변

0

문제는 상단의 XML이 제대로 구성되어 있지 않다는 것입니다.

텍스트 시퀀스에서 태그를 사용할 수 없습니다. 파서는 이러한 요소를 제거합니다.

XML Escaping

이와

List of escape characters

:

$xml = new SimpleXMLElement(file_get_contents('xmltest.xml')); 
var_dump($xml->node1); 

당신은 노드를 읽을 수 있습니다.

0

이 질문에 궁금한 점이 있습니다. OP가 원하는 것을하는 것은 정말로 불가능합니까? @Stony는 조작 된 XML이 불가능하다고 말했고 OP가 원하는 방식으로 XML 기능이 잘못된 XML로 작동하지 않는다면 놀라지 않을 것입니다.

$xml = new SimpleXMLElement(file_get_contents('xmltest.xml')); 
var_dump($xml->master_node); 

: 당신은 모든 텍스트 내용을 얻을 수 있습니다

<data> 
    <master_node> 
    <nested1>First nested node text.</nested1> 
    <nested2>Second nested node text.</nested2> 
    <nested3>Third nested node text.</nested3> 
    </master_node> 
</data> 

:이처럼 XML을 형성하는 경우 http://www.featureblend.com/xml-nesting.html

: 여기

는 XML에 중첩 요소의 예 어쩌면 JavaScript 나 일반 PHP와 비슷한 것으로 나타날 수도 있습니다. 그냥 변수에 파일을로드하고 정규식 또는 문자열 검색 기능을 사용하여 구문 분석. 정규식을 사용하여 XML을 파싱하는 것은 가능합니다. 예를 들어 정규식을 사용하여 HTML을 파싱하는 것과 같습니다 ...

+0

hmmm ... 안내해 주셔서 감사합니다 ... 또한 파일을로드 한 다음 중첩 된 태그를 문자열 데이터로 변환하는 것으로 바꾸는 것이 좋습니다. – Shahid

+0

@Shahid 그 방법 중 하나 일 것입니다. 이 요소의 태그를 엔티티로 출력하는 방법을 미리 테스트 할 시간이 없었습니다. ' 중첩 노드 < encoded_tag ​​> 내용 </encoded_tag ​​> 인코딩 후'. 그것은 물론 태그없이 페이지에 멋지게 인쇄합니다. ' 중첩 노드 < 강한 > 콘텐츠 </strong > (인코딩 된 후)'을 시도하면 태그 콘텐츠가 정렬되어 표시됩니다 (즉, 태그가 소스 코드에 있음). –

관련 문제