Scala:讀取xml文件(示例)


test.xml內容如下

<?xml version="1.0"?>
<Tests>
    <Test TestId="0001" TestType="CMD">
        <Name>Convert number to string</Name>
        <CommandLine>Examp1.EXE</CommandLine>
        <Input>1</Input>
        <Output>One</Output>
    </Test>
    <Test TestId="0002" TestType="CMD">
        <Name>Find succeeding characters</Name>
        <CommandLine>Examp2.EXE</CommandLine>
        <Input>abc</Input>
        <Output>def</Output>
    </Test>
    <Test TestId="0003" TestType="GUI">
        <Name>Convert multiple numbers to strings</Name>
        <CommandLine>Examp2.EXE /Verbose</CommandLine>
        <Input>123</Input>
        <Output>One Two Three</Output>
    </Test>
    <Test TestId="0004" TestType="GUI">
        <Name>Find correlated key</Name>
        <CommandLine>Examp3.EXE</CommandLine>
        <Input>a1</Input>
        <Output>b1</Output>
    </Test>
    <Test TestId="0005" TestType="GUI">
        <Name>Count characters</Name>
        <CommandLine>FinalExamp.EXE</CommandLine>
        <Input>This is a test</Input>
        <Output>14</Output>
    </Test>
    <Test TestId="0006" TestType="GUI">
        <Name>Another Test</Name>
        <CommandLine>Examp2.EXE</CommandLine>
        <Input>Test Input</Input>
        <Output>10</Output>
    </Test>
</Tests>

讀取xml文件

方式一:

val xml=XML.load(this.getClass.getClassLoader.getResource("test.xml"))

方式二:

val xml=XML.load(new FileInputStream("D:\\java\\BigData\\scala\\Demo\\src\\main\\resources\\test.xml"))

方式三

val xml =XML.load(new InputStreamReader(new FileInputStream("D:\\java\\BigData\\scala\\Demo\\src\\main\\resources\\test.xml")))

查找

查找Test下的Name
val name=xml \"Test" \"Name"
查找所有Name
val names=xml \\"Name"
查找Test中屬性“TestId”

方式一:

val TestIds = (xml \ "Test").map(_ \ "@TestId")

方式二:

val TestIds = (xml \ "Test" \\ "@TestId")
查找Test中屬性“TestId”=“0003”

方式一:

val filters=(xml \\ "Test").filter(_.attribute("TestId").exists(_.text.equals("0003")))

方式二:

val filters=(xml \\ "Test").filter(x=>((x \ "@TestId").text).equals("0003"))
獲取所有Test下的“TestId”,文本內容,“TestType”的值
val filters=(xml \\ "Test").map(x=>(x \ "@TestId",x.text,x \ "@TestType"))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM