2013-03-18 3 views
1

Microsoft XML Core Services 6.0 (MSXML)을 사용하여 XML 파일을 읽고 쓰고 있습니다. "&"을 &으로 작성하는 것과 같이 xml의 컨텍스트에서 을 이스케이프 처리해야하는 "특수 문자"가있는 요소 콘텐츠를 작성할 때 MSXML이이 변환을 수행하므로이 부분에 대해 을 신경 써야합니다. 즉, 텍스트에 텍스트를 지정하면 (예 : oXMLElement.Text = "1 & 2" 일 때 MSXML은 실제로 XML 파일을 만들 때 oXMLElement.Text = 1 & 2을 작성합니다. 그게 꽤 좋은 그리고 저에게 몇 가지 작업을 절약 할 수 있습니다.MSXML/XPath : 특수 문자

이제 내가하고 싶은 것은 XML 문자열 을 자동으로 "제거"하는 것입니다. 그래서 -method를 사용하여 XML 파일을 읽었습니다. 은 XPath 문을 추가하여 작동합니다. //ns:element/text(). 불행히도 결과 문자열은 1 & 2처럼 보이지만 1 & 2이 아닙니다. MSXML 개체 또는 XPath 문에 "de-masked"문자열을 제공하는 방법이 있습니까? 저는 MSXML을 ObjectPal/Paradox와 함께 사용하기 때문에 최상의 솔루션은 MSXML 라이브러리 또는 "특수"XPath- 문에서 가져온 메서드입니다.

+0

사용중인 코드 ('selectNodes()'호출과 약간의 컨텍스트)를 보여줄 수 있습니까? 특히'selectNodes()'를 호출 한 후 어떻게 결과 문자열을 얻는가? 예 : '.nodeValue','.text' 또는'.xml' 속성 중 하나를 사용하고 있습니까? – LarsH

답변

0

당신이보고있는 것은 텍스트에 대한 "이스케이프 처리 된"XML 표기법입니다. .xml 속성을 사용하여 문자열을 검색하는 경우 표시되는 내용입니다.

이스케이프없는 문자열을 얻으려면 .nodeValue을 사용하십시오.

+0

완벽 해, 이제 nodeValue에서 잘 작동합니다. 많은 감사합니다! – whocares81