-1

HIEOS で xtest (testplan.xml) にアクセスしているときに、. 次のエラーが発生しています。

FatalError (step null) : Could not create XMLStreamReader (in Util.parse_xml()) from string: o;?<?xml version="1.0" encoding="UTF-8"?>

それを解決する方法?

注: C#.NET を使用して XML 値を変更しました。変更前は、xtest は正常に動作しています。その理由は何ですか?

追加の詳細: 同じ XML ファイルを次の C# コードでテストしました。

XmlTextReader tr = new XmlTextReader(@"D:\hieos-1.2\xtest\test\scripts\testdata\trial3\submit\testplan.xml");
XmlValidatingReader r = new XmlValidatingReader(tr);
r.ValidationType = ValidationType.None;
try
{
    while (r.Read()) ;
}
catch (XmlException e)
{
    Console.WriteLine(e.Message);
    Console.WriteLine("Exception object Line, pos: (" + e.LineNumber + "," + e.LinePosition + ")");
    Console.WriteLine("Exception source URI: (" + e.SourceUri + ")");
    Console.WriteLine("XmlReader Line, pos: (" + tr.LineNumber + "," + tr.LinePosition + ")");
}

例外は発生しません。XMLStreamReaderXMLファイルで何か他のものをチェックすると思います。

私のXMLファイルの内容は、

<?xml version="1.0" encoding="UTF-8"?>
<TestPlan>
<Test>vsmallpnr/submit</Test>
 <TestStep id="submit_docs">
    <NewPatientId/>
    <ExpectedStatus>Success</ExpectedStatus>
    <ProvideAndRegisterTransaction>
        <XDSb/>
    <AssignUuids/>
        <MetadataFile>sor.xml</MetadataFile>
        <Document id="Document01">test_pdf_doc.pdf</Document>
        <Document id="Document02">test_hitsp_c32.xml</Document>
    <Document id="Document03">test_txt_doc.txt</Document>
    <Document id="Document04">test_txt_doc.txt</Document>
    <Document id="Document05">test_txt_doc.txt</Document>
    </ProvideAndRegisterTransaction>
</TestStep>
<TestStep id="reset_patient_id">
    <NewPatientId/>
</TestStep>

解決策: UTF-8 エンコーディング を使用して XML 保存方法を変更しました。その後、エラーは解決されます。ご支援いただきありがとうございます。

4

2 に答える 2

0

XMLStreamReaderin xtestの実際の問題は、 C# のエンコーディング技術によるものです。

C# コードのエンコード手法が変更されると、エラーは解決されます。

using (TextWriter sw = new StreamWriter(@"D:\hieos-1.2\xtest\test\scripts\testdata\trial3\submit\testplan.xml", false, Encoding.Default))
{                    
    xmlDoc.Save(sw);
 }

XMLDocumentエンコーディング タイプについて言及しなかった場合、実際のコンテンツの前に空白が作成されます。これが、Xtest (Java) が XMLStreamReader エラーをスローする理由です。

于 2013-09-16T13:26:02.137 に答える
0

XmlWriterまたはでXml をロードするときStreamWriterは、XML に必要なエンコーディングについて言及することが重要です。UTF-8 xml をロードしたからといって、UTF-8 xml が保存されるわけではありません。使用する:

var doc = new XmlDocument();
XmlElement root = doc.CreateElement("myRoot");
doc.AppendChild(root);
root.InnerText = "myInnerText";
using(TextWriter sw = new StreamWriter("C:\\output.txt", false, Encoding.UTF8)) //Set encoding
{
    doc.Save(sw);
}
于 2013-09-16T08:51:30.813 に答える