C# 如何解析XMLDocument InnerText/InnerXML字符串
我有一个XMLDocument.InnerText响应,如下所示C# 如何解析XMLDocument InnerText/InnerXML字符串,c#,xml,xmldocument,C#,Xml,Xmldocument,我有一个XMLDocument.InnerText响应,如下所示 <result errorCode="0"><return><candidate><id>805</id><username /><forename>PROADMIN</forename><surname>ZZDEMO</surname><gender>U</gender><dob&
<result errorCode="0"><return><candidate><id>805</id><username /><forename>PROADMIN</forename><surname>ZZDEMO</surname><gender>U</gender><dob>01/01/1915</dob><candidateRef>037d23e4-fd0d-42d8-8858-e8de4c91c52c</candidateRef><uln /></candidate><exam><id>993</id><examState>4</examState><examId>1531</examId><examName>PDEM1</examName><duration>60</duration><totalDuration>60</totalDuration><autoSubmitDate>2020-02-25T23:59:00</autoSubmitDate><requiresSecureClient>1</requiresSecureClient><advanceDownload>0</advanceDownload><requiresConfirmationCheck>1</requiresConfirmationCheck><confirmationText>By ticking this box you confirm your details are correct and you accept the awarding organisation's code of conduct.</confirmationText><language>en </language><certifiedAccessible>0</certifiedAccessible><examDeliverySystemStyleType>delivery_flat</examDeliverySystemStyleType><styleprofileId>8</styleprofileId><itemBankStyleProfileId>239</itemBankStyleProfileId><itemBankStyleProfileVersion>6</itemBankStyleProfileVersion><invigilated>0</invigilated><pinNumber>VJWRWG</pinNumber><startDateAndTime>Feb 25 2020 12:00AM</startDateAndTime><certifiedForTablet>0</certifiedForTablet><candidateDetailsTime>0</candidateDetailsTime><ndaTime>0</ndaTime><showCandidateDetailsPage>1</showCandidateDetailsPage><enableLogging>0</enableLogging><candidateBreakExtraDurationType>0</candidateBreakExtraDurationType><candidateBreakExtraDuration>0</candidateBreakExtraDuration><numberOfExtraBreaksPerSection>0</numberOfExtraBreaksPerSection><timeExtensionMin>0</timeExtensionMin><autoLaunchPdfViewer>0</autoLaunchPdfViewer><enableSearchInPdfViewer>1</enableSearchInPdfViewer><markingProgressMode>1</markingProgressMode><markingProgressVisible>1</markingProgressVisible><requiresBYODMode>0</requiresBYODMode><isHtmlCompatible>1</isHtmlCompatible><showAudioRecordSettings>0</showAudioRecordSettings></exam><token>4Oh9Av5ln4Gm7zyhzTHUecdy</token><centre><centreName>9222</centreName><centreCode>9222</centreCode><centreAddressLine1></centreAddressLine1><centreAddressLine2></centreAddressLine2><centreTown></centreTown><centreCounty>Unknown</centreCounty><centreCountry>Unknown</centreCountry><centrePostcode></centrePostcode></centre><styleProfile><providerLogoColourID>8CF11B73-D04B-4FC7-BA8E-26840D0466E3.png</providerLogoColourID><providerLogoMonochromeID>A5705F2E-8AB8-44EB-8575-43180FE1A2FA.png</providerLogoMonochromeID><clientLogoColourID></clientLogoColourID><clientLogoMonochromeID></clientLogoMonochromeID><deliveryWindowPosition>Centre</deliveryWindowPosition><headerFooterColourBackground>3D505A</headerFooterColourBackground><headerFooterColourText>FFFFFF</headerFooterColourText><finishButtonColourBackground>F7D78C</finishButtonColourBackground><finishButtonColourText>3D505A</finishButtonColourText><primaryButtonColourBackground>2B9ED8</primaryButtonColourBackground><primaryButtonColourText>FFFFFF</primaryButtonColourText><secondaryButtonColourBackground>3D505A</secondaryButtonColourBackground><secondaryButtonColourText>FFFFFF</secondaryButtonColourText><candidateFirstNameEnable>True</candidateFirstNameEnable><candidateLastNameEnable>True</candidateLastNameEnable><candidateDOBEnable>False</candidateDOBEnable><candidateGenderEnable>False</candidateGenderEnable><candidateReferenceEnable>False</candidateReferenceEnable><finishButtonShown>True</finishButtonShown><flagButtonShown>True</flagButtonShown><preferencesButtonShown>True</preferencesButtonShown><sectionReviewButtonShown>True</sectionReviewButtonShown><sectionInformationShown>True</sectionInformationShown><itemSetNumberingEnabled>False</itemSetNumberingEnabled><itemSetHeaderShown>False</itemSetHeaderShown><textForItemSetName></textForItemSetName><textForItemName></textForItemName><questionTitleDisplayMode>Name</questionTitleDisplayMode><warningIntervalOne>30</warningIntervalOne><warningIntervalTwo>15</warningIntervalTwo><warningIntervalThree>5</warningIntervalThree><warningDuration>30</warningDuration><correctItemsEnable>True</correctItemsEnable><incorrectItemsEnable>True</incorrectItemsEnable><unattemptedItemsEnable>True</unattemptedItemsEnable><candidateResponseEnable>True</candidateResponseEnable><correctAnswersEnable>True</correctAnswersEnable><candidateFeedbackEnable>True</candidateFeedbackEnable><questionInformationShown>True</questionInformationShown><introductionButtonShown>True</introductionButtonShown><sectionDetailShown>True</sectionDetailShown><nextButtonShown>True</nextButtonShown></styleProfile></return></result>
<?xml version="1.0" encoding="utf-8"?><string xmlns=""><result errorCode="0"><return><candidate><id>805</id><username /><forename>PROADMIN</forename><surname>ZZDEMO</surname><gender>U</gender><dob>01/01/1915</dob><candidateRef>037d23e4-fd0d-42d8-8858-e8de4c91c52c</candidateRef><uln /></candidate><exam><id>993</id><examState>4</examState><examId>1531</examId><examName>PDEM1</examName><duration>60</duration><totalDuration>60</totalDuration><autoSubmitDate>2020-02-25T23:59:00</autoSubmitDate><requiresSecureClient>1</requiresSecureClient><advanceDownload>0</advanceDownload><requiresConfirmationCheck>1</requiresConfirmationCheck><confirmationText>By ticking this box you confirm your details are correct and you accept the awarding organisation's code of conduct.</confirmationText><language>en </language><certifiedAccessible>0</certifiedAccessible><examDeliverySystemStyleType>delivery_flat</examDeliverySystemStyleType><styleprofileId>8</styleprofileId><itemBankStyleProfileId>239</itemBankStyleProfileId><itemBankStyleProfileVersion>6</itemBankStyleProfileVersion><invigilated>0</invigilated><pinNumber>VJWRWG</pinNumber><startDateAndTime>Feb 25 2020 12:00AM</startDateAndTime><certifiedForTablet>0</certifiedForTablet><candidateDetailsTime>0</candidateDetailsTime><ndaTime>0</ndaTime><showCandidateDetailsPage>1</showCandidateDetailsPage><enableLogging>0</enableLogging><candidateBreakExtraDurationType>0</candidateBreakExtraDurationType><candidateBreakExtraDuration>0</candidateBreakExtraDuration><numberOfExtraBreaksPerSection>0</numberOfExtraBreaksPerSection><timeExtensionMin>0</timeExtensionMin><autoLaunchPdfViewer>0</autoLaunchPdfViewer><enableSearchInPdfViewer>1</enableSearchInPdfViewer><markingProgressMode>1</markingProgressMode><markingProgressVisible>1</markingProgressVisible><requiresBYODMode>0</requiresBYODMode><isHtmlCompatible>1</isHtmlCompatible><showAudioRecordSettings>0</showAudioRecordSettings></exam><token>4Oh9Av5ln4Gm7zyhzTHUecdy</token><centre><centreName>9222</centreName><centreCode>9222</centreCode><centreAddressLine1></centreAddressLine1><centreAddressLine2></centreAddressLine2><centreTown></centreTown><centreCounty>Unknown</centreCounty><centreCountry>Unknown</centreCountry><centrePostcode></centrePostcode></centre><styleProfile><providerLogoColourID>8CF11B73-D04B-4FC7-BA8E-26840D0466E3.png</providerLogoColourID><providerLogoMonochromeID>A5705F2E-8AB8-44EB-8575-43180FE1A2FA.png</providerLogoMonochromeID><clientLogoColourID></clientLogoColourID><clientLogoMonochromeID></clientLogoMonochromeID><deliveryWindowPosition>Centre</deliveryWindowPosition><headerFooterColourBackground>3D505A</headerFooterColourBackground><headerFooterColourText>FFFFFF</headerFooterColourText><finishButtonColourBackground>F7D78C</finishButtonColourBackground><finishButtonColourText>3D505A</finishButtonColourText><primaryButtonColourBackground>2B9ED8</primaryButtonColourBackground><primaryButtonColourText>FFFFFF</primaryButtonColourText><secondaryButtonColourBackground>3D505A</secondaryButtonColourBackground><secondaryButtonColourText>FFFFFF</secondaryButtonColourText><candidateFirstNameEnable>True</candidateFirstNameEnable><candidateLastNameEnable>True</candidateLastNameEnable><candidateDOBEnable>False</candidateDOBEnable><candidateGenderEnable>False</candidateGenderEnable><candidateReferenceEnable>False</candidateReferenceEnable><finishButtonShown>True</finishButtonShown><flagButtonShown>True</flagButtonShown><preferencesButtonShown>True</preferencesButtonShown><sectionReviewButtonShown>True</sectionReviewButtonShown><sectionInformationShown>True</sectionInformationShown><itemSetNumberingEnabled>False</itemSetNumberingEnabled><itemSetHeaderShown>False</itemSetHeaderShown><textForItemSetName></textForItemSetName><textForItemName></textForItemName><questionTitleDisplayMode>Name</questionTitleDisplayMode><warningIntervalOne>30</warningIntervalOne><warningIntervalTwo>15</warningIntervalTwo><warningIntervalThree>5</warningIntervalThree><warningDuration>30</warningDuration><correctItemsEnable>True</correctItemsEnable><incorrectItemsEnable>True</incorrectItemsEnable><unattemptedItemsEnable>True</unattemptedItemsEnable><candidateResponseEnable>True</candidateResponseEnable><correctAnswersEnable>True</correctAnswersEnable><candidateFeedbackEnable>True</candidateFeedbackEnable><questionInformationShown>True</questionInformationShown><introductionButtonShown>True</introductionButtonShown><sectionDetailShown>True</sectionDetailShown><nextButtonShown>True</nextButtonShown></styleProfile></return></result></string>
两者都显示一个空的XMLNodeList。对于解析XML相对来说比较陌生,我做错了什么?我对您展示的代码没有任何问题。特别是,我将您的第一个代码片段复制到名为
document.xml
的文件中,然后编译并运行以下程序:
using System;
using System.Xml;
public class Program
{
public static void Main(string[] args)
{
XmlDocument document = new XmlDocument();
document.Load("document.xml");
var tokens = document.GetElementsByTagName("token");
foreach(XmlElement token in tokens)
{
Console.WriteLine(token.InnerXml);
}
}
}
这将在运行时产生预期的输出:
4Oh9Av5ln4Gm7zyhzTHUecdy
所以,无论你的程序有什么问题,它都不在你在这里展示的代码中。你说的“NPE”是什么意思?您是指
NullReferenceException
?给定行应该抛出的唯一方法是,如果文档
本身为null…@DanielMcLaury,edited。NPE被抛出到其他地方,XMLNodeList对上述两个都有0计数。
4Oh9Av5ln4Gm7zyhzTHUecdy