请问这个xml怎么用simplexml解析,vardump总是false
版主,又来求助了。。。这回事是网页返回的XML数据,我不知道为什么不能用simplexml读取,var_dump显示false
echo '#########################'.'</br></br>'; var_dump($xml); echo '#########################'; echo '<br>'.'<br>'.'<br>'.$xml->xsm->nickname;
如果用上面这段直接打印是这样子的:
echo '#########################'.'</br></br>'; var_dump(simplexml_load_string($xml); echo '#########################'; echo '<br>'.'<br>'.'<br>'.$xml->xsm->nickname;
用这段代码打印就会显示bool(false)
求解决
回复讨论(解决方案)
$xml = preg_replace('/!|--/', '', $xml);var_dump(simplexml_load_string($xml));
$xml = preg_replace('/!|--/', '', $xml);var_dump(simplexml_load_string($xml));
//$xml='<!--?xml version="1.0" encoding="gbk"?-->'; $xml = preg_replace('/!--\?|--/','', $xml); var_dump($xml);
这样我试了,单独一行可以正匹配,但是在这段代码里无效。在网页元素查看器里看到返回的数值还是有注释符
你为什么要自作聪明呢
$xml = preg_replace('/!|--/', '', $xml);var_dump(simplexml_load_string($xml));
之前我不懂那个是xml里的注释,现在明白了,所以想到了另一种方法,可是还是失败了,能告诉我下原因吗?
$xml = '<xml version="1.0" encoding="gbk"?>'.$xml; var_dump(simplexml_load_string($xml));
我是用字符串运算符加了一行xml的文件标记,可是用simplexml_load_string的时候依然显示失败
还是那话,你为什么要自作聪明呢
你为什么要自作聪明呢
你给我的代码贴上去也是无法载入...
那是因为你不给我你的数据
还是那话,你为什么要自作聪明呢
这是直接复制给我的代码贴上去运行后的结果...
依然得去掉simplexml载入的语句才能dump出来
你光截图是没有用的!
你怎么知道其中没有不可打印的字符呢?
那是因为你不给我你的数据
<?xml version="1.0" encoding="gbk"?><xsm code="0000" msg="验证成功abc" trans_time="20140808162708"><userId>114</userId><nickName>wedc</nickName><userType>2</userType><comId>116</comId><saledptId>11601</saledptId><refId>1062014</refId><comName></comName><domainUrl>v=2014080600</domainUrl><comType>02</comType><comShort></comShort><parentComId>11620001</parentComId><expirationTime>1407488228735</expirationTime><planText>10116226011162288228735</planText><signatureValue>c6959b4eacf7b2f</signatureValue></xsm>
这是我用fwrite写入的$xml值
里面没有注释掉文件标记,可不知道问什么不能载入
你光截图是没有用的!
你怎么知道其中没有不可打印的字符呢?
在IE下查看会显示
结束标记 'xsm' 与开始标记 'comShort' 不匹配。
SimpleXMLElement Object( [@attributes] => Array ( [code] => 0000 [msg] => 验证成功abc [trans_time] => 20140808162708 ) [userId] => 114 [nickName] => wedc [userType] => 2 [comId] => 116 [saledptId] => 11601 [refId] => 1062014 [comName] => SimpleXMLElement Object ( ) [domainUrl] => v=2014080600 [comType] => 02 [comShort] => SimpleXMLElement Object ( ) [parentComId] => 11620001 [expirationTime] => 1407488228735 [planText] => 10116226011162288228735 [signatureValue] => c6959b4eacf7b2f)
你截图中显示字符串长度为 984 字节,而你贴出的只有 509 字节。
还有四百多字节到哪里去了?
你光截图是没有用的!
你怎么知道其中没有不可打印的字符呢?
版主,我知道,原因是里面有中文所以不能载入,这个如何才能解决?因为数据不是我自己的所以我也没法改
SimpleXMLElement Object( [@attributes] => Array ( [code] => 0000 [msg] => 验证成功abc [trans_time] => 20140808162708 ) [userId] => 114 [nickName] => wedc [userType] => 2 [comId] => 116 [saledptId] => 11601 [refId] => 1062014 [comName] => SimpleXMLElement Object ( ) [domainUrl] => v=2014080600 [comType] => 02 [comShort] => SimpleXMLElement Object ( ) [parentComId] => 11620001 [expirationTime] => 1407488228735 [planText] => 10116226011162288228735 [signatureValue] => c6959b4eacf7b2f)
你截图中显示字符串长度为 984 字节,而你贴出的只有 509 字节。
还有四百多字节到哪里去了?
还有400字节是一长串字符串太长我就删了半截
谢谢你,我发现原因了,是因为PHP用utf8编码的,而获取的xml数据时gbk的,把文件里的gbk改成utf8就解决了
SimpleXMLElement Object( [@attributes] => Array ( [code] => 0000 [msg] => 验证成功abc [trans_time] => 20140808162708 ) [userId] => 114 [nickName] => wedc [userType] => 2 [comId] => 116 [saledptId] => 11601 [refId] => 1062014 [comName] => SimpleXMLElement Object ( ) [domainUrl] => v=2014080600 [comType] => 02 [comShort] => SimpleXMLElement Object ( ) [parentComId] => 11620001 [expirationTime] => 1407488228735 [planText] => 10116226011162288228735 [signatureValue] => c6959b4eacf7b2f)
你截图中显示字符串长度为 984 字节,而你贴出的只有 509 字节。
还有四百多字节到哪里去了?
成功了 ~~~~~~[]

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











XML 파일을 PPT로 열 수 있나요? XML, Extensible Markup Language(Extensible Markup Language)는 데이터 교환 및 데이터 저장에 널리 사용되는 범용 마크업 언어입니다. HTML에 비해 XML은 더 유연하고 자체 태그와 데이터 구조를 정의할 수 있으므로 데이터 저장과 교환이 더 편리하고 통합됩니다. PPT 또는 PowerPoint는 프레젠테이션 작성을 위해 Microsoft에서 개발한 소프트웨어입니다. 이는 포괄적인 방법을 제공합니다.

HTTP 상태 코드 460의 역할 및 응용 시나리오에 대한 심층 분석 HTTP 상태 코드는 웹 개발에서 매우 중요한 부분이며 클라이언트와 서버 간의 통신 상태를 나타내는 데 사용됩니다. 그중 HTTP 상태 코드 460은 상대적으로 특별한 상태 코드입니다. 이 기사에서는 해당 역할과 애플리케이션 시나리오를 심층적으로 분석합니다. HTTP 상태 코드 460의 정의 HTTP 상태 코드 460의 구체적인 정의는 "ClientClosedRequest"이며, 이는 클라이언트가 요청을 닫는다는 의미입니다. 이 상태 코드는 주로 다음을 나타내는 데 사용됩니다.

iBatis 및 MyBatis: 차이점 및 장점 분석 소개: Java 개발에서 지속성은 일반적인 요구 사항이며 iBatis와 MyBatis는 널리 사용되는 두 가지 지속성 프레임워크입니다. 유사점이 많지만 몇 가지 중요한 차이점과 장점도 있습니다. 이 기사에서는 이 두 프레임워크의 기능, 사용법 및 샘플 코드에 대한 자세한 분석을 통해 독자에게 보다 포괄적인 이해를 제공할 것입니다. 1. iBatis 기능: iBatis는 SQL 매핑 파일을 사용하는 오래된 지속성 프레임워크입니다.

Oracle 오류 3114에 대한 자세한 설명: 이를 신속하게 해결하는 방법, 구체적인 코드 예제가 필요합니다. Oracle 데이터베이스를 개발 및 관리하는 동안 다양한 오류가 발생하는 경우가 많으며 그중 오류 3114는 비교적 일반적인 문제입니다. 오류 3114는 일반적으로 네트워크 오류, 데이터베이스 서비스 중지 또는 잘못된 연결 문자열 설정으로 인해 발생할 수 있는 데이터베이스 연결 문제를 나타냅니다. 이 문서에서는 오류 3114의 원인과 이 문제를 신속하게 해결하는 방법을 자세히 설명하고 특정 코드를 첨부합니다.

[PHP 중간점의 의미와 사용법 분석] PHP에서 중간점(.)은 두 개의 문자열이나 객체의 속성이나 메소드를 연결하는 데 사용되는 일반적으로 사용되는 연산자입니다. 이 기사에서는 구체적인 코드 예제를 통해 PHP에서 중간점의 의미와 사용법을 자세히 살펴보겠습니다. 1. 문자열 중간점 연산자 연결 PHP에서 가장 일반적인 사용법은 두 문자열을 연결하는 것입니다. 두 문자열 사이에 .을 배치하면 두 문자열을 이어붙여 새 문자열을 만들 수 있습니다. $string1=&qu

Win11의 새로운 기능 분석: Microsoft 계정 로그인을 건너뛰는 방법 Windows 11이 출시되면서 많은 사용자는 Windows 11이 더 편리하고 새로운 기능을 제공한다는 사실을 알게 되었습니다. 그러나 일부 사용자는 시스템을 Microsoft 계정에 연결하는 것을 좋아하지 않아 이 단계를 건너뛰기를 원할 수도 있습니다. 이 문서에서는 사용자가 Windows 11에서 Microsoft 계정 로그인을 건너뛰고 보다 개인적이고 자율적인 환경을 달성하는 데 도움이 되는 몇 가지 방법을 소개합니다. 먼저 일부 사용자가 Microsoft 계정에 로그인하기를 꺼리는 이유를 이해해 보겠습니다. 한편으로는 일부 사용자들은 다음과 같은 걱정을 합니다.

Wormhole은 블록체인 상호 운용성의 선두주자로서 소유권, 통제 및 무허가형 혁신을 우선시하는 탄력적이고 미래 지향적인 분산 시스템을 만드는 데 중점을 두고 있습니다. 이 비전의 기초는 단순성, 명확성 및 광범위한 다중 체인 솔루션 제품군으로 상호 운용성 환경을 재정의하기 위한 기술 전문 지식, 윤리적 원칙 및 커뮤니티 조정에 대한 헌신입니다. 영지식 증명, 확장 솔루션 및 풍부한 기능의 토큰 표준이 등장하면서 블록체인은 더욱 강력해지고 상호 운용성은 점점 더 중요해지고 있습니다. 이 혁신적인 애플리케이션 환경에서 새로운 거버넌스 시스템과 실용적인 기능은 네트워크 전반의 자산에 전례 없는 기회를 제공합니다. 프로토콜 빌더는 이제 이 새로운 멀티체인에서 어떻게 기능할지 고민하고 있습니다.

C 언어의 지수 함수에 대한 자세한 분석 및 예 소개: 지수 함수는 일반적인 수학 함수이며 C 언어에서 사용할 수 있는 해당 지수 함수 라이브러리 함수가 있습니다. 이 기사에서는 함수 프로토타입, 매개변수, 반환 값 등을 포함하여 C 언어에서 지수 함수의 사용을 자세히 분석하고 독자가 지수 함수를 더 잘 이해하고 사용할 수 있도록 구체적인 코드 예제를 제공합니다. 텍스트: C 언어의 지수 함수 라이브러리 함수 math.h에는 지수와 관련된 많은 함수가 포함되어 있으며, 그 중 가장 일반적으로 사용되는 것은 exp 함수입니다. exp 함수의 프로토타입은 다음과 같다
