【问题标题】:Using javascript to import data from pre-created XML file使用 javascript 从预先创建的 XML 文件中导入数据
【发布时间】:2017-06-13 20:08:36
【问题描述】:

我想这是我在这里的第一篇文章!经常使用 stackoverflow,它是一个很棒的网站!

我有一个 XML 文件,其中包含一个包含特定文件的文件路径的字段,一个提供创建日期的字段,以及提供纬度、度数和秒以及经度、分钟的字段和几秒钟的手机图像。

部分 XML 文件如下所示:(注意我已更改文件中的数据,因此它不反映“真实”数据。)

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<OFSExport Version="4">
    <MobileDevice Name="785421076249232-01-01-2015 10-40-45">
        <Sections>
            <Section Name="FILE_BROWSER">
            <Item Type="ATTR_FB_TYPE_FOLDER">
                <Field Type="FLD_FB_FILE_PATH">/private/var/mobile/Media/DCIM/101APPLE/</Field>
                <Field Type="FLD_FB_MODIFIED" UTC_Offset="0"></Field>
                <Field Type="FLD_FB_LAST_ACCESSED" UTC_Offset="0"></Field>
                <Field Type="FLD_FB_CREATED" UTC_Offset="0"></Field>
                <Field Type="FLD_ITEM_HASH" Hash_Method="ATTR_HASH_SHA-2"></Field>

            </Item>
            <Item Type="ATTR_FB_TYPE_FILE" Deleted="ATTR_FB_DEL_ACTUAL">
                <Field Type="FLD_FB_FILE_NAME">IMG_1230.JPG</Field>
                <Field Type="FLD_FB_FILE_SIZE">716102</Field>
                <Field Type="FLD_FB_FILE_PATH">/private/var/mobile/Media/DCIM/101APPLE/IMG_1230.JPG</Field>
                <Field Type="FLD_FB_MODIFIED" Date="17.01.2015" Time="18:16:09" UTC_Offset="0"></Field>
                <Field Type="FLD_FB_LAST_ACCESSED" Date="01.05.2015" Time="22:42:00" UTC_Offset="0"></Field>
                <Field Type="FLD_FB_CREATED" Date="17.01.2015" Time="18:16:08" UTC_Offset="0"></Field>
                <Field Type="FLD_ITEM_HASH" Hash_Method="ATTR_HASH_SHA-2">90e939f5bb4bad0ac53be9ad34db5bd98c4bc6628058ee9b5c3bcf4704f547bc</Field>
                <ExifInfo>
                    <ExifItem Type="FLD_FB_EXIF_ApertureValue" Eng_Title="Aperture value">2.27500712455432</ExifItem>
                    <ExifItem Type="FLD_FB_EXIF_BrightnessValue" Eng_Title="Brightness value">4.49876684478372</ExifItem>
                    <ExifItem Type="FLD_FB_EXIF_ColorSpace" Eng_Title="ColorSpace">1</ExifItem>
                    <ExifItem Type="FLD_FB_EXIF_DateTime" Eng_Title="Timestamp" Date="17.01.2015" Time="19:16:08" UTC_Offset="Device Time"></ExifItem>
                    <ExifItem Type="FLD_FB_EXIF_DateTimeDigitized" Eng_Title="Digitized timestamp" Date="17.01.2015" Time="19:16:08" UTC_Offset="Device Time"></ExifItem>
                    <ExifItem Type="FLD_FB_EXIF_DateTimeOriginal" Eng_Title="Original timestamp" Date="17.01.2015" Time="19:16:08" UTC_Offset="Device Time"></ExifItem>
                    <ExifItem Type="FLD_FB_ExifImageHeight" Eng_Title="Height">1920</ExifItem>
                    <ExifItem Type="FLD_FB_ExifImageWidth" Eng_Title="Width">3412</ExifItem>
                    <ExifItem Type="FLD_FB_EXIF_ExifVersion" Eng_Title="Exif version">0221</ExifItem>
                    <ExifItem Type="FLD_FB_EXIF_ExposureProgram" Eng_Title="Exposure program">2</ExifItem>
                    <ExifItem Type="FLD_FB_EXIF_ExposureTime" Eng_Title="Exposure time">11:01:48 AM</ExifItem>
                    <ExifItem Type="FLD_FB_EXIF_Flash" Eng_Title="Flash">16</ExifItem>
                    <ExifItem Type="FLD_FB_EXIF_FlashPixVersion" Eng_Title="Flash pix version">0100</ExifItem>
                    <ExifItem Type="FLD_FB_EXIF_FNumber" Eng_Title="Focal number">2.2</ExifItem>
                    <ExifItem Type="FLD_FB_EXIF_FocalLength" Eng_Title="Focal length">4.15</ExifItem>
                    <ExifItem Type="FLD_FB_EXIF_FocalLengthIn35mmFilm" Eng_Title="Focal length in 35mm film">74</ExifItem>
                    <ExifItem Type="FLD_FB_EXIF_GPSAltitude" Eng_Title="GPS altitude">124.118556701031</ExifItem>
                    <ExifItem Type="FLD_FB_EXIF_GPSAltitudeRef" Eng_Title="GPS altitude ref">0</ExifItem>
                    <ExifItem Type="FLD_FB_EXIF_GPSDateStamp" Eng_Title="GPS timestamp" Date="17.10.2016" Time="00:00:00" UTC_Offset="Device Time"></ExifItem>
                    <ExifItem Type="FLD_FB_EXIF_GPSDestLatitudeRef" Eng_Title="GPS dest latitude ref">E</ExifItem>
                    <ExifItem Type="FLD_FB_EXIF_GPSLatitudeDegrees" Eng_Title="GPS latitude degrees">40</ExifItem>
                    <ExifItem Type="FLD_FB_EXIF_GPSLatitudeMinutes" Eng_Title="GPS latitude minutes">30</ExifItem>
                    <ExifItem Type="FLD_FB_EXIF_GPSLatitudeSeconds" Eng_Title="GPS latitude seconds">10.00000000001</ExifItem>
                    <ExifItem Type="FLD_FB_EXIF_GPSLatitudeRef" Eng_Title="GPS latitude ref">N</ExifItem>
                    <ExifItem Type="FLD_FB_EXIF_GPSLongitudeMinutes" Eng_Title="GPS longitude minutes">15</ExifItem>
                    <ExifItem Type="FLD_FB_EXIF_GPSLongitudeSeconds" Eng_Title="GPS longitude seconds">31.0000000000001</ExifItem>
                    <ExifItem Type="FLD_FB_EXIF_GPSLongitudeRef" Eng_Title="GPS longitude ref">W</ExifItem>

我是一名数字法医检查员,我正在尝试在 googlemap 上绘制照片的拍摄地点。 XML 文件是取证软件提供的输出,虽然它以非常好的方式将数据绘制到地图上,但似乎没有一种方法可以让其他人查看它。所以我正在尝试创建自己的地图,上面有标记,显示拍摄照片的位置。我正在通过 HTML5 和 javascript 使用 Google 街道地图来执行此操作。

目前的计划是循环这个xml文件,拉出部分文件路径,以及经纬度数据,把这个数据添加为js对象(fp:..., lat:..., lon : ....),然后将此 JS 对象添加到 JS 数组中,并重复直到添加所有数据。然后,我将遍历数组并为地图上的每张照片创建标记。 (未来的想法是更改图像缩略图的标记,并注意特定位置的图片数量。)

现在我正在尝试导入 XML 文件并引用我需要的位,但我很挣扎!我试过xhttp.open,(地图将是一个本地保存的文件,之后我会提供给客户,而不是保存到服务器,所以这个命令不起作用。)$ .parseXML 提供以下错误消息:

jquery.min.js:2 未捕获的错误:无效 XML:geolocation.xml at Function.error (jquery.min.js:2) at Function.parseXML (jquery.min.js:2) at test.js: 50

有没有人知道如何使用 javascript 循环访问与 HTML 文件位于同一文件夹中的已创建的 xml 文件?

干杯

鲍勃

【问题讨论】:

  • jQuery 负责抓取和解析 XML。你能分享你的代码吗?
  • @FieryCat var testXML = $.parseXML("geolocation.xml");控制台.log(textXML);无法正确获得 minimarkdown!

标签: javascript jquery xml html


【解决方案1】:

parseXMLuse string for input, 尝试下一个解决方案:

$.ajax({
    type: "GET",
    url: "geolocation.xml",
    dataType: "xml",
    success: function (xml) {
        // dataType do the job of $.parseXML(xml);
        console.log(xml);
    }
});

【讨论】:

  • @fierycat。我收到以下错误:jquery.min.js:4 XMLHttpRequest 无法加载 geolocation.xml。跨源请求仅支持协议方案:http、data、chrome、chrome-extension、https。发送@jquery.min.js:4 ajax @jquery.min.js:4(匿名)@test.js:29 我添加了 在我的 jquery html 中
  • XML 文件必须在同一台服务器上,尝试将url 更改为正确的地址:`url: '//' + window.location.host + '/geolocation.xml'
猜你喜欢
  • 1970-01-01
  • 2017-09-07
  • 2015-07-18
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多