Похоже, у меня отладчик возился с сокетом ...
Ниже приведены две ссылки с изображениями, показывающими правильный и неправильный регистр:
НЕПРАВИЛЬНО -> Мне заданы настройки Chrome и без отладчика сценариев
[ 111] ПРАВИЛЬНО -> Подобные настройки позволили устранить ошибку, и все браузеры были способны общаться друг с другом
Я надеюсь, что это может помочь другим с той же проблемой!
С уважением [ 118]
Обновление: Поскольку более корректный ответ видит ответ Tim Down .
Internet Explorer и, например, основанные на Mozilla браузеры представляет различные объекты для парсинга XML, таким образом, мудро использовать платформу JavaScript как jQuery для обработки различий перекрестных браузеров.
А действительно основной пример:
var xml = "<music><album>Beethoven</album></music>";
var result = $(xml).find("album").text();
Примечание: Как указано в комментариях; jQuery действительно не делает никакого XML, анализирующего безотносительно, он полагается на метод DOM innerHTML и проанализирует его как он, был бы любой HTML так быть осторожным при использовании имен элементов HTML в XML. Но я думаю, что это работает довольно хорошее для простого XML 'парсинг', но, вероятно, не предлагается для интенсивного или 'динамического' парсинга XML, где Вы не делаете заранее, какой XML снизится, и это тестирует, если все анализирует как ожидалось.
Большинство примеров в сети (и некоторые представленные выше) показывает, как загрузить XML из файла в браузере совместимый способ. Это оказывается легким, кроме случая Google Chrome, который не поддерживает document.implementation.createDocument()
метод. При использовании Chrome, для загрузки XML-файла в объект XMLDocument, необходимо использовать встроенный объект XmlHttp и затем загрузить файл путем передачи, это - URI.
В Вашем случае, сценарий отличается, потому что Вы хотите загрузить XML из строковой переменной , не URL. Для этого требования однако, предположительно, работает Chrome точно так же, как Mozilla (или таким образом, я услышал) и поддерживает parseFromString () метод.
Вот функция, которую я использую (это - часть библиотеки Совместимости браузера, которую я в настоящее время создаю):
function LoadXMLString(xmlString)
{
// ObjectExists checks if the passed parameter is not null.
// isString (as the name suggests) checks if the type is a valid string.
if (ObjectExists(xmlString) && isString(xmlString))
{
var xDoc;
// The GetBrowserType function returns a 2-letter code representing
// ...the type of browser.
var bType = GetBrowserType();
switch(bType)
{
case "ie":
// This actually calls into a function that returns a DOMDocument
// on the basis of the MSXML version installed.
// Simplified here for illustration.
xDoc = new ActiveXObject("MSXML2.DOMDocument")
xDoc.async = false;
xDoc.loadXML(xmlString);
break;
default:
var dp = new DOMParser();
xDoc = dp.parseFromString(xmlString, "text/xml");
break;
}
return xDoc;
}
else
return null;
}
Я всегда использовал подход ниже который работы в IE и Firefox.
Пример XML:
<fruits>
<fruit name="Apple" colour="Green" />
<fruit name="Banana" colour="Yellow" />
</fruits>
JavaScript:
function getFruits(xml) {
var fruits = xml.getElementsByTagName("fruits")[0];
if (fruits) {
var fruitsNodes = fruits.childNodes;
if (fruitsNodes) {
for (var i = 0; i < fruitsNodes.length; i++) {
var name = fruitsNodes[i].getAttribute("name");
var colour = fruitsNodes[i].getAttribute("colour");
alert("Fruit " + name + " is coloured " + colour);
}
}
}
}
Смотрите на Синтаксический анализатор XML DOM ( W3Schools). Это - учебное руководство на парсинге XML DOM. Фактический синтаксический анализатор DOM отличается от браузера до браузера, но API DOM стандартизирован и остается тем же (более или менее).
, Кроме того, использование E4X, если Вы можете , ограничивает сами Firefox. Относительно легче использовать, и это - часть JavaScript начиная с версии 1.6. Вот использование небольшой выборки...
//Using E4X
var xmlDoc=new XML();
xmlDoc.load("note.xml");
document.write(xmlDoc.body); //Note: 'body' is actually a tag in note.xml,
//but it can be accessed as if it were a regular property of xmlDoc.