Сборка XML с данными CSV - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь найти способ «загрузить» файл CSV локально и заставить его создать файл XML на основе данных в CSV.Мне нужно сделать все это на стороне клиента, и я пока не слишком хорошо владею JS.Я понял, как извлечь данные CSV ...

<html>
<head>
    <script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
</head>
<body>
    <script>
       d3.select("body").append("input").attr("type", "file").attr("accept", ".csv").on("change", function() {
            var csv = d3.event.target.files[0];
                if (csv) {
                    var reader = new FileReader();
                        reader.onloadend = function(event) {
                        var Url = event.target.result;
                        d3.csv(Url, function(data) {
                            return {
                                name: data.name,
                                latitude: data.latitude,
                                longitude: data.longitude
                            };
                        }, function(rows) {
                            console.log(rows);
                        });
                    };
                reader.readAsDataURL(csv);
                }
            })
    </script>
</body>
</html>

... и я надеюсь перебрать данные для создания XML.Я хотел бы получить некоторые рекомендации или предложения о том, как создать XML-файл и впоследствии загрузить его в виде файла.Подойдет ли DOM для этой работы?Если так, как я могу загрузить его abc.xml после того, как он был сгенерирован из abc.csv?Я пытаюсь превратить данные cvs "SomeName, 40.987654, -70.123456" в ...

<Entry>
    <name>SomeName</name>
    <Location>
        <coordinates>-70.123456,40.987654</coordinates>
    </Location>
</Entry>

Надеюсь, это было ясно;если нет, дайте мне знать, и я постараюсь уточнить!

1 Ответ

0 голосов
/ 31 мая 2018

Вы можете использовать следующий пример в качестве руководства.Для этого требуется пакет NPM xml-parser в качестве зависимости.

var xmlDoc = [
  {
    type: 'element',
    tagName: '?xml',
    attributes: {
      version: '1.0',
      encoding: 'UTF-8'
    },
    childNodes: [],
    innerXML: '>',
    closing: false,
    closingChar: '?'
  },
  {
    type: 'element',
    tagName: 'root',
    attributes: {},
    childNodes: [
      {
        type: 'text',
        text: 'Root Element'
      }
    ],
    innerXML: 'Root Element',
    closing: true,
    closingChar: null
  }
]
 
var xmlStr = xml.stringify(xmlDoc, 2); // 2 spaces
 
console.log(xmlStr);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...