경로에 XML 잘못된 문자가 있습니다.
soap 기반 서비스를 쿼리하고 있는데 데이터를 쿼리하기 위해 XML을 XDoc에 로드하려고 할 때 반환되는 XML을 분석하려고 합니다. '경로에 있는 잘못된 문자' 오류 메시지가 표시됩니까?서비스에서 반환된 XML입니다.저는 단순히 경기 목록을 가져와서 제가 설정한 목록에 넣고 싶습니다.XML은 XML 문서에 로드되지만 형식이 정확해야 합니다.
이를 수행하고 오류를 해결하는 가장 좋은 방법에 대한 조언을 주시면 대단히 감사하겠습니다.
<?xml version="1.0" ?>
- <gsmrs version="2.0" sport="soccer" lang="en" last_generated="2010-08-27 20:40:05">
- <method method_id="3" name="get_competitions">
<parameter name="area_id" value="1" />
<parameter name="authorized" value="yes" />
<parameter name="lang" value="en" />
</method>
<competition competition_id="11" name="2. Bundesliga" soccertype="default" teamtype="default" display_order="20" type="club" area_id="80" last_updated="2010-08-27 19:53:14" area_name="Germany" countrycode="DEU" />
</gsmrs>
여기 제 코드가 있습니다. XDoc에서 데이터를 조회할 수 있어야 합니다.
string theXml = myGSM.get_competitions("", "", 1, "en", "yes");
XmlDocument myDoc = new XmlDocument();
MyDoc.LoadXml(theXml);
XDocument xDoc = XDocument.Load(myDoc.InnerXml);
소스 코드를 표시하지는 않지만, 지금 하고 계신 일은 다음과 같습니다.
string xml = ... retrieve ...;
XmlDocument doc = new XmlDocument();
doc.Load(xml); // error thrown here
그Load메서드에서 XML 자체가 아닌 파일 이름을 기대합니다.실제 XML을 로드하려면LoadXml방법:
... same code ...
doc.LoadXml(xml);
마찬가지로 사용하기XDocument그Load(string)메소드는 실제 XML이 아닌 파일 이름을 기대합니다. 그러나 없습니다.LoadXml따라서 문자열에서 XML을 로드하는 올바른 방법은 다음과 같습니다.
string xml = ... retrieve ...;
XDocument doc;
using (StringReader s = new StringReader(xml))
{
doc = XDocument.Load(s);
}
사실 어떤 것을 개발할 때는 단지 그 종류가 아니라 매개변수의 의미(의미)에 주목하는 것이 매우 좋은 생각입니다.파라미터의 종류가 a일 때string끈인 것만 먹고 살 수 있다는 뜻은 아닙니다
당신의 최신 질문에 대해서도, 사용하는 것은 말이 안 됩니다.XmlDocument그리고.XDocument동시에둘 중 하나를 선택합니다.
Ondrej Tucny의 답변에 대한 후속 조치:
대신 xml 문자열을 사용하려면 XElement를 사용하고 "parse" 메서드를 호출합니다. (필요에 따라 XElement와 XDocument가 필요에 맞게 구성되어 있으므로)
예를 들어,
string theXML = '... get something xml-ish...';
XElement xEle = XElement.Parse(theXML);
// do something with your XElement
XElement의 Parse 메서드를 사용하면 XML 문자열을 전달할 수 있지만 Load 메서드에는 파일 이름이 필요합니다.
그거 좋지
XDocument.Parse(theXml);
이것이 올바른 해결책이 될 것이라고 생각합니다.
만약 이것이 정말로 당신의 출력이라면 그것은 마이너스 문자('-') 때문에 불법 XML입니다.IE와 같은 브라우저에서 이것을 잘라 붙여넣은 것으로 의심됩니다.브라우저가 아닌 텍스트 편집기에서 정확한 XML을 표시해야 합니다.
언급URL : https://stackoverflow.com/questions/4057938/xml-illegal-characters-in-path
'codememo' 카테고리의 다른 글
| PHP에서 알림창을 표시하는 방법은? (0) | 2023.11.04 |
|---|---|
| std:: 문자열에 문자를 추가하는 방법? (0) | 2023.11.04 |
| 리소스를 로드하지 못했습니다. 서버가 401(무허가) /App/Angular 상태로 응답했습니다.JS/angular.min.js (0) | 2023.11.04 |
| ng-show 교란성 div 레이아웃 - angularJS (0) | 2023.11.04 |
| PowerShell의 배열에서 배열 목록을 만드는 방법은 무엇입니까? (0) | 2023.11.04 |