我不得不分析用户文档,有时他们不是很好格式。它可能包含空格之前的标签或其他issue.how我可以使他们良好的形成或如果这是不可能的我怎么能忽略所有异常? 我也收到有关字节标记顺序的例外情况,因为文档采用UTF-16编码,但没有字节标记,我也不能添加任何文件,因为它们是用户文件。有没有办法忽略所有的xml解析异常?
好的,有谁能告诉我这个样本数据有什么问题吗? (这是从设备文档的说明:本协议产生的所有交易将通过使用XML文件来执行本文档中描述的XSD 一致。)
<?xml version="1.0" encoding="UTF-16"?>
<PROTOCOLE_HEMATO_BIOCODE InstrumentCode="2" InstrumentType="Diana 5 Evolution" SerialNumber="Ns" Version="C4.06" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<PROTOCOL_DATA>
<RESULT>
<INFORMATION>
<PATIENT DoB="2011-08-03" FirstName="ALI" Location="" MedicalDoctor="" Name="NAVIDI" PatientCommentary="" PID="" RefTable="1" SID="1059"/>
</INFORMATION>
<DATAS DateTimeAnalyse="2011-08-03T11:36:11Z" IdOpAnalyse="Service" UnitsSytem="US">
<PARAMETER IDParametre="0" LowerRefLimit="4" Nom="WBC" Statut_Limits="48" Units="K/µL" UpperRefLimit="10" Value="4.6"/>
<PARAMETER IDParametre="1" LowerRefLimit="20" Nom="Lym%" Statut_Limits="48" Units="%" UpperRefLimit="45" Value="37.8"/>
<PARAMETER IDParametre="2" LowerRefLimit="2" Nom="Mon%" Statut_Limits="48" Units1111="%" UpperRefLimit="8" Value="6"/>
<PARAMETER IDParametre="3" LowerRefLimit="40"Nom="Neu%" Statut_Limits="48" Units="%" UpperRefLimit="75" Value="51.8"/>
<PARAMETER IDParametre="4" LowerRefLimit="0" Nom="Bas%" Statut_Limits="48" Units="%" UpperRefLimit="3" Value="0"/>
<PARAMETER IDParametre="5" LowerRefLimit="1" Nom="Eos%" Statut_Limits="48" Units="%" UpperRefLimit="7" Value="4.4"/>
<PARAMETER IDParametre="7" LowerRefLimit="1.5" Nom="Lym#" Statut_Limits="48" Units="K/µL" UpperRefLimit="4.5" Value="1.7"/>
<PARAMETER IDParametre="8" Nom="Mon#" Statut_Limits="48" Units="K/µL" UpperRefLimit="0.8" Value="0.28"/>
<PARAMETER IDParametre="9" LowerRefLimit="2" Nom="Neu#" Statut_Limits="48" Units="K/µL" UpperRefLimit="7.5" Value="2.4"/>
<PARAMETER IDParametre="10" Nom="Bas#" Statut_Limits="48" Units="K/µL" UpperRefLimit="0.2" Value="0"/>
<PARAMETER IDParametre="11" Nom="Eos#" Statut_Limits="48" Units="K/µL" UpperRefLimit="0.6" Value="0.2"/>
<PARAMETER IDParametre="21" LowerRefLimit="4.5" Nom="RBC" Statut_Limits="48" Units="M/µL" UpperRefLimit="6.2" Value="5.11"/>
<PARAMETER IDParametre="22" LowerRefLimit="12" Nom="Hb" Statut_Limits="48" Units="g/dL" UpperRefLimit="18" Value="16.2"/>
<PARAMETER IDParametre="23" LowerRefLimit="35" Nom="Hct" Statut_Limits="48" Units="%" UpperRefLimit="54" Value="48.8"/>
<PARAMETER IDParametre="24" LowerRefLimit="80" Nom="MCV" Statut_Limits="51" Units="fL" UpperRefLimit="95" Value="95.5"/>
<PARAMETER IDParametre="25" LowerRefLimit="27" Nom="MCH" Statut_Limits="48" Units="pg" UpperRefLimit="32" Value="31.7"/>
<PARAMETER IDParametre="26" LowerRefLimit="32" Nom="MCHC" Statut_Limits="48" Units="%" UpperRefLimit="36" Value="33.2"/>
<PARAMETER IDParametre="27" LowerRefLimit="11" Nom="RDW-cv" Statut_Limits="48" Units="%" UpperRefLimit="15" Value="10.6"/>
<PARAMETER IDParametre="28" Nom="RDW-sd" Statut_Limits="48" Units="fL" Value="33.9"/>
<PARAMETER IDParametre="29" LowerRefLimit="150" Nom="Plt" Statut_Limits="48" Units="K/µL" UpperRefLimit="500" Value="200"/>
<PARAMETER IDParametre="30" LowerRefLimit="6" Nom="MPV" Statut_Limits="48" Units="fL" UpperRefLimit="10" Value="7.3"/>
<PARAMETER IDParametre="31" Nom="Pct" Statut_Limits="48" Units="%" Value="0.15"/>
<PARAMETER IDParametre="32" Nom="PDW" Statut_Limits="48" Units="%" Value="8.4"/>
<PARAMETER IDParametre="33" Nom="Lx" Statut_Limits="48" Units=" " Value="20"/>
<PARAMETER IDParametre="34" Nom="Ly" Statut_Limits="48" Units=" " Value="16"/>
<PARAMETER IDParametre="35" Nom="Nx" Statut_Limits="48" Units=" " Value="59"/>
</DATAS>
<TRACABILITE IDOpValidation="" ModeleAnalyseur="Diana 5 Evolution" SerialNumber="" VersionCalcul="C4.06" VersionPackage="V6.26">
<REACTIF ExpirationDate="2014-07-31" Lot="562" Product="HEMATON-5 "/>
<REACTIF ExpirationDate="2014-05-04" Lot="12452" Product="HEMACORE "/>
<REACTIF ExpirationDate="2013-07-03" Lot="73049" Product="HEMALYSE-5 "/>
<FACTEUR_CALIBRATION FactorDate="2011-07-31" FactorValue="1" IDParametre="0" ParameterName="WBC"/>
<FACTEUR_CALIBRATION FactorDate="2011-07-31" FactorValue="1" IDParametre="21" ParameterName="RBC"/>
<FACTEUR_CALIBRATION FactorDate="2011-07-31" FactorValue="1" IDParametre="22" ParameterName="Hb"/>
<FACTEUR_CALIBRATION FactorDate="2011-07-31" FactorValue="1" IDParametre="24" ParameterName="MCV"/>
<FACTEUR_CALIBRATION FactorDate="2011-07-31" FactorValue="1" IDParametre="29" ParameterName="Plt"/>
<FACTEUR_CALIBRATION FactorDate="2011-07-31" FactorValue="1" IDParametre="30" ParameterName="MPV"/>
</TRACABILITE>
<IMAGE DataSize="6676" ImageType="3">
<IMAGE_DATA>AQAAA
</IMAGE_DATA>
</IMAGE>
</RESULT>
</PROTOCOL_DATA>
</PROTOCOLE_HEMATO_BIOCODE>
我倾向于不同意。如果格式良好的XML将等于XML,那么就不需要称之为良好的格式。所以“良构”这个术语意味着确实存在一种XML格式。另外,如果用C#编写的代码包含单一的错误行,则不会用C#编写代码。另外,如果Armin没有使用XML这个术语,我们甚至都不知道他在说什么。 –
@Sascha“XML文档”是“格式良好的XML文档”的简称。我们指定“格式良好”的唯一原因是所有似乎认为其中包含尖括号的内容都是XML文档的人。 – Justin
我知道你在@Justin得到什么,在这方面你是对的。重要的一点是区分机器之间或人与人之间的通信。在试图分析文档的应用程序环境中,您的陈述是绝对正确的(如果我认为是C#代码,那么编译器肯定会抱怨)。我更多地阅读它,“不要把它称为XML,因为W3C推荐标准否则”。 - 但显然你的意思是第一种提到的方式。 –