XML 文档 (30, 14) FormatException 中存在错误:输入字符串的格式不正确。?

There is an error in XML document (30, 14) FormatException: Input string was not in a correct format.?

我首先要道歉,因为我在网站上发现了很多此类性质的问题。

我正在尝试将 XML 文档反序列化为 C# 对象供以后使用,但 运行 遇到了问题。

错误日志 "There is an error in XML document (30, 14). FormatException: Input string was not in a correct format." 暗示我的文档有问题,特别是第 30 行第 14 列是否正确?

(Irrelevant data has been omitted out using the "-" character)

    <?xml version="1.0" encoding="UTF-8"?>
<AddressBook>
    <Contact>
        <Name>Joe Money-Chappelle</Name>
            <ContactType>-----</ContactType>
            <DateofBirth>-----</DateofBirth>
            <AddressLine1>-----</AddressLine1>
            <AddressLine2>-----</AddressLine2>
            <AddressLine3>-----</AddressLine3>
            <AddressLine4 />
            <Postcode>-----</Postcode>
            <Email1>-----</Email1>
            <Email2>-----</Email2>
            <Phone>01883742871</Phone>
            <Mobile>07549893431</Mobile>
            <AdditionalInfo>-----</AdditionalInfo>
    </Contact>
    <Contact>
        <Name>Connor Rice</Name>
            <ContactType>-----</ContactType>
            <DateofBirth>-----</DateofBirth>
            <AddressLine1>-----</AddressLine1>
            <AddressLine2>-----</AddressLine2>
            <AddressLine3>-----</AddressLine3>
            <AddressLine4 />
            <Postcode>-----</Postcode>
            <Email1>-----</Email1>
            <Email2 />
            <Phone />
            <Mobile>07504500881</Mobile>
            <AdditionalInfo>-----</AdditionalInfo>
    </Contact>
</AddressBook>

根据这个逻辑,下面一行就是罪魁祸首:

<Mobile>07504500881</Mobile>

然而,它的格式与其正上方部分中的对应部分相同,效果很好,如下所示:

<Mobile>07549893431</Mobile>
<Mobile>07504500881</Mobile>

没有其他行出现错误(还......)所以我不确定问题出在哪里......如果它非常明显那么我再次道歉并且如果需要我会很乐意删除这个问题是。

问题是错误上方行中的空 <Phone /> 元素。由于它是空的,并且您的 Phone 类型可能是某种数字类型,因此 XML 解析器会尝试解析空字符串(例如 Int32.Parse("")),这会引发异常。不知道你用的是哪种反序列化方法,but a nullable type might help.