#xml #node.js #handlebars.js
#xml #node.js #handlebars.js
Вопрос:
У меня возникла проблема с созданием XML-файла. Если я запущу только 20 или около того ‘properties’: properties: properties.slice(0, 20), я получу действительный XML-файл. Если я попытаюсь запустить все мои свойства: properties: свойства, где у меня около 100, мой XML недействителен.
Он возвращается как недопустимый из-за того, что случайный XML-элемент не был закрыт должным образом.
Есть какие-нибудь подсказки, почему это сработало бы, скажем, для … 20, но не для 100?
Код, который генерирует XML:
var express = require('express');
var router = express.Router();
router.get('/mits.xml', function(req, res) {
var date = new Date();
var y = date.getYear() 1900;
var m = date.getMonth() 1;
var d = date.getDate();
api.getProperties(function(e, properties) {
res.header('Content-Type', 'application/xml');
res.render('mits/index', {
properties: properties.slice(0,20),
//properties: properties,
layout: false,
month: m,
year: y,
date: d
});
});
});
module.exports = router;
Файл шаблона для handlebars:
<?xml version="1.0" encoding="UTF-8"?>
<PhysicalProperty xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Management
IDValue="XYZ"
OrganizationName="XYZ Company">
</Management>{{#properties}}
<Property IDValue="123" OrganizationName="XYZ">
<PropertyID>
<MarketingName>XYZ</MarketingName>
<LegalName>XYZ Company</LegalName>
<WebSite>XYZ</WebSite>
<Address AddressType="property">
<AddressLine1>XYZ</AddressLine1>
<City>XYZ</City>
<State>XYZ</State>
<PostalCode>XYZ</PostalCode>
<Country>United States</Country>
</Address>
<Phone PhoneType="office">
<PhoneNumber>XYZ</PhoneNumber>
</Phone>
<Email>XYZ</Email>
</PropertyID>
<General_ID IDValue="XYZ"></General_ID>
<ILS_Identification
ILS_IdentificationType="Apartment"
RentalType="Unspecified">
<Latitude>-126.1234</Latitude>
<Longitude>126.1234</Longitude>
<LastUpdate
Month="08"
Day="01"
Year="2014"/>
</ILS_Identification>
<Information>
<StructureType>Standard</StructureType>
<UnitCount>2</UnitCount>
<OfficeHour>
<OpenTime>8:00 AM</OpenTime>
<CloseTime>5:00 PM</CloseTime>
<Day>Monday</Day>
</OfficeHour>
</Information>
<Concession Active="true">
<Value>0.00</Value>
<Term>0</Term>
<DescriptionHeader>XYz</DescriptionHeader>
<DescriptionBody>NA</DescriptionBody>
<DescriptionFooter>NA</DescriptionFooter>
</Concession>
<Amenity AmenityType="Other">
<Description>XYz</Description>
</Amenity>
<Floorplan
IDValue="XYZ"
OrganizationName="XYZ">
<Name>XYZ</Name>
<UnitCount>0</UnitCount>
<Room RoomType="Bedroom">
<Count>2.0</Count>
<Comment>NA</Comment>
</Room>
<Room RoomType="Bathroom">
<Count>2.0</Count>
<Comment>NA</Comment>
</Room>
<SquareFeet
Min="123"
Max="123"/>
<MarketRent
Min="123"
Max="123"/>
<EffectiveRent
Min="123"
Max="123"/>
</Floorplan>
<File FileID="XYZ" Active="true">
<FileType>Floorplan</FileType>
<Description>XYZ</Description>
<Name>XYz</Name>
<Caption>XYz</Caption>
<Format>image/jpeg</Format>
<Src>XYZ</Src>
<Rank>XYZ</Rank>
</File>
<File FileID="XYZ" Active="true">
<FileType>Photo</FileType>
<Description>XYZ</Description>
<Name>XYZ</Name>
<Caption>XYZ</Caption>
<Format>image/jpeg</Format>
<Src>XYZ</Src>
<Rank>1</Rank>
</File>
</Property>
{{/properties}}
</PhysicalProperty>
Ответ №1:
Похоже, что проблем с кодом нет. Я делал копию xml из своего браузера в инструмент проверки. Если я загружаю xml через wget, он проходит проверку нормально.