Javascript:XML Safari 中的 getElementsByTagName 不是 return 元素

Javascript: XML getElementsByTagName in Safari not return elements

这是我的 XML 的一部分:

<TextLine Version="2" objectID="3" persistentID="6">
    <BaseProperties Version="5">
        <txBase>665.249</txBase>
        <XPos>221.205</XPos>
        <angle>0</angle>
        <verticalText>false</verticalText>
        <objectLeading>0</objectLeading>
    </BaseProperties>
    <EnclosingObjectType>block</EnclosingObjectType>
    <Alignment>center</Alignment>
    <TRString>xfsadxzcsdf</TRString>
    <RunLengthEncodedCharacterAttributes>
        <CharacterAttributes RunCount="13" StyleRef="4098" TextRef="4096" TXKerning="0" TXPostKerning="0" BaselineShifting="0" />
    </RunLengthEncodedCharacterAttributes>
    <tagName></tagName>
</TextLine>

例如我把它放在 xmlString,在 Safari 中:

var parser = new DOMParser();
var xmlObject = parser.parseFromString(xmlString, 'text/xml');
console.log(xmlObject.getElementsByTagName('TRString')[0].innerHTML);

它return错误:TypeError: undefined is not an object

我试过的:

console.log(xmlObject.getElementsByTagName('TRString')[0]); 

它给你的不是 #element,而是 string。在这个例子中它应该是:

<TRString>xfsadxzcsdf</TRString>

我在 Chrome 中没有这个问题。我知道这并不难解决。但我想知道谁更标准?

Safari 中的 textContent 适合您吗?

如果是这样,您可以使用 textContent,当 innerHTML 不可用时...

var xmlValue = xmlObject.getElementsByTagName('TRString')[0].innerHTML ||
               xmlObject.getElementsByTagName('TRString')[0].textContent;