Мне нужно загрузить локальный XML-файл (например, c: \ temp \ sample.xml) на локальную страницу html5 и показать переменные результата.
это sample.xml
<?xml version = "1.0" encoding = "UTF-8"?>
<fe:Invoice>
<cbc:ProfileID>1.0</cbc:ProfileID>
<cbc:ID>FV341375</cbc:ID>
<fe:AccountingCustomerParty>
<cbc:AdditionalAccountID>2</cbc:AdditionalAccountID>
<fe:Party>
<fe:Person>
<cbc:FirstName>Andres</cbc:FirstName>
</fe:Person>
</fe:Party>
</fe:AccountingCustomerParty>
<fe:InvoiceLine>
<cbc:ID>1102347224825331</cbc:ID>
<cbc:InvoicedQuantity>1</cbc:InvoicedQuantity>
<fe:Item>
<cbc:Description>Item Description</cbc:Description>
</fe:Item>
<fe:Price>
<cbc:PriceAmount currencyID = "COP">65000.00</cbc:PriceAmount>
</fe:Price>
</fe:InvoiceLine>
</fe:Invoice>
мне нужно распечатать значения для:
fe: invoice-> cbc: ID
fe: invoice-> fe: AccountingCustomerParty -> fe: Party -> fe: Person -> cbc: FirstName
fe: invoice-> fe: InvoiceLine -> fe: Item -> cbc: Description
fe: invoice-> fe: InvoiceLine -> fe: price -> cbc: PriceAmount
результат на моей странице html5 должен быть примерно таким:
Идентификатор Invioce: FV341375
Имя: Андрес
Описание: Описание предмета
Цена: 65000.00
Как я могу это сделать с помощью javascript?
Благодарность
Вы можете выполнить XMLHttpRequest, также известный как AJAX. Этот вопрос говорит об этом немного больше и рекомендует использовать структуру AJAX для решения «проблемы совместимости».
Вот как бы это выглядело.
var client = new XMLHttpRequest();
client.open('GET', 'c:\temp\sample.xml');
client.onreadystatechange = function() {
var response = client.responseText,
parser = new DOMParser(),
xmlDoc = parser.parseFromString(response,"text/xml");
//use the xml Doc however you want.
}
client.send();
Больше информации:
Хотя этот вопрос НЕ соответствует рекомендациям по его отправке и является слишком конкретным, я все же отвечу на него.
Шаги:
Выполнение:
HTML:
function readSingleFile(e) {
var file = e.target.files[0];
if (!file) {
return;
}
var reader = new FileReader();
reader.onload = function(e) {
var contents = e.target.result;
displayContents(contents);
};
reader.readAsText(file);
}
function displayContents(contents) {
var element = document.getElementById('file-content');
element.textContent = contents;
parse(contents);
}
document.getElementById('file-input')
.addEventListener('change', readSingleFile, false);
var xmlDoc;
function parse(content)
{
//Create a parser
var parser = new DOMParser();
xmlDoc = parser.parseFromString(content,"text/xml");
//Parse!
document.getElementById("ID").innerText = "ID: " + xmlDoc.evaluate("//ID",xmlDoc).iterateNext().textContent;
document.getElementById("FirstName").innerText = "First Name: " + xmlDoc.evaluate("//FirstName",xmlDoc).iterateNext().textContent;
document.getElementById("Description").innerText = "Description: " + xmlDoc.evaluate("//Description",xmlDoc).iterateNext().textContent;
document.getElementById("PriceAmount").innerText = "Price: " + xmlDoc.evaluate("//PriceAmount",xmlDoc).iterateNext().textContent;
}
<input type = "file" id = "file-input" />
<h3>Contents of the file:</h3>
<pre id = "file-content"></pre>
<div id = "ID">ID: </div>
<div id = "FirstName">First Name: </div>
<div id = "Description">Description: </div>
<div id = "PriceAmount">Price: </div>
Как я их реализовал:
КРЕДИТЫ: Как открыть файл на локальном диске с помощью Javascript?
PS: задавайте более точные вопросы и не просите кого-то кодировать ваш проект.
Большое спасибо за вашу помощь, я действительно не знаю, как это сделать