需要帮助将 XML 转换为 JS

Posted

技术标签:

【中文标题】需要帮助将 XML 转换为 JS【英文标题】:Need help in converting XML to JS 【发布时间】:2021-11-06 10:49:48 【问题描述】:

我正在使用 fast-xml-parser,它可以解析我们从 API 获得但不一致的一些数据。存在无法解析为 JS 对象的特定响应。

<?xml version="1.0" encoding="utf-8"?>
<DataSet xmlns="http://www.pepid.com/webservices/">
    <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
        <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
            <xs:complexType>
                <xs:choice minOccurs="0" maxOccurs="unbounded">
                    <xs:element name="ContentSearchIndex">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="Pos" type="xs:int" minOccurs="0" />
                                <xs:element name="Content_Id" type="xs:int" minOccurs="0" />
                                <xs:element name="Title" type="xs:string" minOccurs="0" />
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                </xs:choice>
            </xs:complexType>
        </xs:element>
    </xs:schema>
    <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
        <NewDataSet xmlns="">
            <ContentSearchIndex diffgr:id="ContentSearchIndex1" msdata:rowOrder="0">
                <Pos>8412</Pos>
                <Content_Id>401687</Content_Id>
                <Title>Headache</Title>
            </ContentSearchIndex>
        </NewDataSet>
    </diffgr:diffgram>
</DataSet>

产生的代码如下:

return fetch(url)
  .then((response) => response.text())
  .then(async (text) => 
    const obj = parse(text);
    if (obj) 
      console.log(obj);
      return obj;

我从https://www.pluralsight.com/guides/fetch-and-populate-xml-data-in-react-native 得到这个代码,它可以解析一些响应,但不能解析上面提到的那个。

我需要的唯一数据是下面的 JS 格式,但我想使用 fast-xml-parser 正确完成。我想我只需要一些选项来使其正确解析该响应,而无需采用逐字阅读整个响应的骇人听闻的方法。

<Pos>8412</Pos>
<Content_Id>401687</Content_Id>
<Title>Headache</Title>

【问题讨论】:

【参考方案1】:

我认为您不能直接将 XML 文件转换为 JS,但您可以在 JS 中使用它来做一些非常酷的事情。

【讨论】:

实际上你可以,如果你阅读了我的问题的第一行,我提到我正在使用 fast-xml-parser。那是一个将xml转换为JS/JSON的库

以上是关于需要帮助将 XML 转换为 JS的主要内容,如果未能解决你的问题,请参考以下文章

vb.net 应用程序将 xml 转换为文本

正则表达式 - 将 HTML 转换为有效的 XML 标记 [重复]

在python中使用argparse将csv转换为xml

将 XML 转换为 JSON 时如何解决编码问题?

使用 java 将 XML 文件转换为 CSV 文件

SQL Server:将 XML 数据转换为表