Почему, когда я отправляю XML на PHP, это узлы в нижнем регистре, но когда я разбираю их на PHP, они имеют верхний регистр?

Это следующий вопрос к этому ответу:

Как обработать XML с PHP, который был отправлен на сервер как text / xml?

JavaScript / JQuery:

var xmlDoc = jQuery.createXMLDocument( "<items></items>" ); jQuery( "items", xmlDoc ).append( jQuery( "<item>My item!</item>" ) ); jQuery.ajax({ url: "test.php", type: "POST", processData: false, contentType: "text/xml", data: xmlDoc, success: function( data ) { alert( data ); } }); 

PHP:

 $xml_text = file_get_contents("php://input"); $xml = simplexml_load_string($xml_text); echo $xml->ITEM; 

Для этого я должен использовать $ xml-> ITEM. Если я использую элемент $ xml->, он не будет работать. Мне было интересно, почему, когда узел элемента добавляется, он имеет строчные буквы, но когда я его извлекаю, теперь он должен быть прописным? Я хотел бы, чтобы это было строчным в моем PHP. Благодарю.

Ваш PHP-скрипт получает в качестве входных данных <items> <ITEM> My item! </ ITEM> </ items>. Пытаться

 <?php $xml_text = file_get_contents("php://input"); file_put_contents('test.log.txt', $xml_text); 

если вы считаете, что это не так.

xmlDoc – это XML-документ, но результат jQuery («<item> My item! </ item>») не является. По пути jQuery использует .nodeName, которое ведет себя как .tagName для элементов.
https://developer.mozilla.org/en/DOM/element.tagName говорит:

В XML (и на XML-языках, таких как XHTML), tagName сохраняет регистр. В HTML tagName возвращает имя элемента в канонической форме в верхнем регистре . Значение tagName такое же, как имя nodeName.